$VER: Manual.txt 1.1 (26/02/99) ©1999 Morten Bjergstrøm @LhA Freeware Version 1.94 Copyright © 1991-94 by Stefan Boberg. Copyright © 1998 by Jim Cooper. Usage: LhA [-] [[homedir] ...] [@file] [destdir] Where is one of: a Add files c Concatenate/Append archives d Delete files e Extract files f Freshen files h Hunt for diffs arc <-> filesys l[q] List archive (terse) m Move files to archive p Print files to stdout r Replace files t Test archive integrity u Update archive v[q] List archive (verbose) vv Show archive contents (full) x Extract files with full path y Copy archive with new options And is one or more of: -a Preserve file attributes -A Set archive attributes -b Set I/O buffer size (KB) -B Keep backup of archive -c Confirm files -C Clear arc-bit on extract -d Archive date = newest file -D Alternate progress display -e Archive empty directories -E Touch extracted files -f Ignore filenotes -F Use fast progress display -g (Un)Garble with password (N/A) -G Only extract newer files -h Disable homedirectories -H Write header level ( 0,1,2 ) -i Read filelist from file -I Ignore ENV:LHAOPTS -k Keep partial files -K Kill empty directories (move) -l Make filenames lowercase -L Create filelist -m No messages for query -M No autoshow files -n No byte progress indicator -N No progress indicator -o On or after date (newer than) -O On or before date (older than) -p Pause after loading -P Set task priority -q Be quiet -Q Alternate option set introducer -r Collect files recursively -R Collect archives recursively -s Only add files with A flag unset -S Set A flag on added files -t Only extract new files -T Only extract new & newer files -u Make filenames uppercase -U Set indicator update rate(bytes) -v Set compression speed -V Enable / set multivolume size(KB) -w Set work directory -W Exclude filenames -x Preserve and use path names -X Do not append LZH/LHA suffix -y Always append LZH/LHA suffix -Y Store big files w.ratio < 3%. -z Do not compress files -Z Compress archives -0 Use LhArc V1.x compression -1 Use LHA V2.x compression (-lh4-) -2 Use LHA V2.x compression (-lh5-) Alternate options: -Qa Use simple console I/O -Qb Test archive before extract -Qd Delete autoshow files -Qh Set Huffman buffer size (KB) -Qn Set national character mode -Qo Ignore options after cmd -Qp Ignore delete protection flag -Qq Quick add -Qr Skip datestamp check -Qv Set multivolume arc devices -Qw Disable wildcards Options are case-sensitive and may be specified anywhere on the command line, the option letter followed by a 0 disables the option, any non-zero digit will enable it. If no digit follows the option letter, it will be enabled. Some options are enabled by default (depending on used command), the default compression is LHA V2.x-style compression. For more info please consult the user's manual. The destination directory must have a trailing slash (/) or colon (:). @ARJ Amiga v0.6 Usage: ARJ [-] [.arj] Commands: e - extract files x - extract files with full path l - list archive v - verbose listing of archive t - test archive Options: c - show archive comment i - display no progress indicator n - extract only non existant files q - query on each file x - disable CRC checking y - assume yes on all queries @LZX 1.21 (Registered) Archive/Extract utility - 68020/68030 Version. Copyright © 1995 Data Compression Technologies. All rights reserved. Registered to . Usage: LZX [-] [...] [] : a Add file(s) to archive p Print file(s) to stdout af Add file(s) to archive, faster r Replace file(s) in archive c Concatenate archive(s) t Test file(s) in archive d Delete file(s) from archive u Update file(s) in archive e Extract file(s) v[n] List file(s) [verbose] f Freshen file(s) in archive x Extract file(s) with full path l List file(s) [terse] : -a (ax) Preserve file attributes -q (ax) Configure console output -bi(ax) Set input buffer size (Kb) -r (a ) Recurse into subdirectories -bo(ax) Set output buffer size (Kb) -R (ax) Collect archives recursively -c (ax) Confirm files/archives -s (a ) Add only files with no A bit -C ( x) Clear arc (A) bit on extract -S (a ) Set A bit on added files -e (a ) Archive empty directories -u (ax) Make file names upper case -E ( x) Touch extracted files -U (ax) Set update rate (Kb) -f (ax) Ignore filenotes -w (a ) Set work directory -F (ax) Fast progress display -x (a ) Preserve path names -k ( x) Keep partial extractions -X (ax) Control .LZX suffixing -l (ax) Make file names lower case -y (a ) Store files with ratio >= x% -m (ax) Disable interactivity -Y (a ) Compress archives -M (a ) Set merge group size limits -0 (a ) Store files -o (ax) On or after date (yyyy/mm/dd) -1 (a ) Fast compression -O (ax) On or before date (yyyy/mm/dd) -2 (a ) Default compression -p (ax) Pause after loading -3 (a ) More compression -P (ax) Set task priority -9 (a ) Maximum compression -Qf(a ) Faster compression (more RAM) -- (ax) Stop further option parsing @AddBuffers(V1.3,2.x,3.x in C:) NAME AddBuffers - Increase the sector cache for system disk drives. SYNOPSIS AddBuffers DRIVE BUFFER KEYWORDS DRIVE This is the name of the drive you want to buffer. It can be either a floppy drive or a harddrive. Do not assign buffers to RAM. You will slow down your system considerably because all of its information is already stored there. Only valid AmigaDos devices can be assigned buffers. BUFFERS The number of 512-byte buffers to add. 15 is how Commodore set up your start-up sequence. This is a decent number but not the best if you have more than enough ram. Commodore set the buffers to 15 because the first Amigas carried only 512k of RAM. Optimum range is at about 30 buffers (15k of ram). And again at 100 buffers (50k of memory). Number below 30 and above 100 will not do you much good. @AddDataTypes (3.x Only in C:) NAME AddDataTypes - Adds additional data types after booting. SYNOPSIS AddDataTypes [files] [Quiet] [Refresh] @Ask(V1.3 in C:) (v 2.x & 3.x internal) NAME Ask - Query user interactively. SYNOPSIS Ask Prompt WARN OK TIMEOUT DESCRIPTION Ask is a program that allows you to get a simple form of input from a user. It is most useful in Execute scripts. You may specify a Prompt string, which will be displayed to the user, and you may also specify a string to match on for both YES and NO responses, as well as specifying a time limit on the users response in seconds. All of these strings have default values, the default for the WARN string is 'Y', the default for the OK string is 'N', and the default for the Prompt is a single question mark. If the user enters a string which matches the WARN string, Ask will exit with a return code that will cause an IF WARN statement to succeed. If the user enters a string which matches the OK string, exceeds the value given in TIMEOUT, or simply hits RETURN then Ask will exit with a ZERO return, suitable for the ELSE portion of such an IF statement. More simply: A 'yes' returns a 5. A 'no' returns a 0. If the user enters a string other than those specified in WARN and OK, then ASK will redisplay the prompt, urging the user to give a better answer. EXAMPLE Here is an example of an Ask command which will return a WARNING if the user types "Amiga", and an OK if the user types "BigBlue", or waits longer than 10 seconds to respond: Ask "Amiga or BigBlue?" "Amiga" "BigBlue" Timeout 10 IF WARN ; typed amiga! Echo "Obviously a person of quality" ELSE ; typed big blue? or couldn't decide Echo "You seem to be misguided" ENDIF @Asteriks (*) (1.3,/2.x/3.x internal) NAME * - 1) An escape character to allow quotation marks in a filename. 2)May be used to refer to the currently active console device. DESCRIPTON The asteriks may be used as an escape character to allow you to insert quotation marks and other asteriks in a filename. For this to work, you must place an asteriks infront of any quotation mark or asteriks you wish to include in the filename. It may also represent the console device that's currently active. For instance, if you wish to output everything typed into the current CLI (ei the active console device) to the printer or to a text file, you can use the asteriks. 2.x/3.x ONLY: You may use the asterisk as a wildcard (as in MSDos). But this may only be done if turned on by some external software. EXAMPLES 1) To create a file called: "ESCOM" Rules Amiga! From a file called: "Commodore" Blew It! copy from "*"Commodore*" Blew It" to "*"ESCOM*" Rules Amiga!" 2) To create a file called: "9*Fingers" From a filed called: *Nine Fingers copy from "**nine fingers" to "*"9**Fingers*" note: Notice how the command line from file has all lower case letters and the file sitting on the disk has two capital letters in it. The CLI does not see the case of the character, so the command will work just fine. 3) To print out everything that shows up in the current CLI: copy * TO prt: 4) To copy everything that shows up in the current CLI to a file name 'work:What_I_Did': copy * to Work:What_I_Did note: To stop copying to 'Work:What_I_did' you must press the ctrl-\ key combination. @Avail(V1.3, 2.x,3.x in C:) NAME Avail - Report memory statistics. SYNOPSIS 1.3 Avail [CHIP] [FAST] [TOTAL] 2.x/3.x Avail [CHIP] [FAST] [TOTAL] [FLUSH] DESCRIPTION Avail reports on the amount of memory available in the system, its type, how much of each type is in use and is free, and the largest single block of memory of each type (also known as contiguous memory). This command is useful with shell scripts to determine if there is enough memory available to load a program, file or graphic before you actually perform the load. OPTIONS CHIP Reports the total amount of free chip memory FAST Reports the total amount of free fast memory TOTAL Reports the total of all free memory, both fast and chip. FLUSH 2.x/3.x Only: This option will force all unused devices, libraries and other resources out of the system, which gives the most accurate report of available memory. This will free you as much memory as possible by killing all information in your memory not being used by any program. This is useful to kill off all the residue of processes that exited but did not give you all your memory back. EXAMPLES 1. To get all available system ram: Avail 2. Show only Fast Memory Avail Fast @BackTick (2.x/3.x ONLY) (CLI Function) NAME BackTick- Allows you to include the text output of one command to be the input of another command. SYNOPSIS SomeCLICommand `AnotherCommand` DESCRIPTION This is a new and important feature of 2.x/3.x. BackTick lets you insert the text output of one command to be the input of another command. For instance, if you wanted to print the contents of the Work:ESCOM directory with an informative header you would type this: ECHO >prt: "The directories in work are:" `Dir Work:ESCOM` It's a good idea to know where this key is, so I'll tell you. It is the key right above the Tab key. The unshifted version of that key is the BackTick (`), the shifted version is the Tilde (~). If you try to use the parenthesis key (') your command will fail. There is a difference between those two keys even though they look similar on the screen. The backtick command always evaluates itself at the time it is issued. If you wish to have the backtick command evaluated after several other commands have been issued you must place the asterix (*) escape character before each backtick. For instance, lets say you want to create an alias which displays the contents of the Gould:Loser directory. You would type: Alias grovel Echo "Contents of the Loser directory is: *`dir Gould:Loser*` Now, whenever you want to see what is in that directory you merely type 'grovel' and it will be shown. But, if you don't include the asterixes then any changes made to the Gould:Loser directory will not be reflected. You will only see what was in that directory when the Alias was first made. With some experimentation you will find this DOS function to be one of the most useful. @BaseName(V1.3- arp component)) NAME BaseName - Display the Base (filename) of a pathname. SYNOPSIS BaseName Path/a Suffix DESCRIPTION Basename extracts the filename from a long pathname, displaying it to the standard output. You can also give BaseName a suffix to delete. The most common use for BaseName is in scripts, where it is used to generate new filenames from old. This command is most useful with a shell that supports command substitution and piping. EXAMPLE BaseName "DF0:Scoobie/Doobie/Foobar" Foobar BaseName "DF0:Scoobie/Doobie/Foobar.c" .c Foobar OTHER This command is new with V1.3 of Arp, it is not available with the Commodore distribution. It has been replaced by several internal calls in v2.x/3.x. @Assign(V1.3, 2.x, 3.x in C:) NAME Assign - Binds a device name to a directory or file. SYNOPSIS 1.3 Assign Name Dir Etc/... LIST EXISTS REMOVE 2.x/3.x Assign Name Dir Etc/... LIST EXISTS DISMOUNT DEFER PATH ADD REMOVE VOLS DIRS DEVICES DESCRIPTION Assign causes NAME: to be a synonym for a directory or a pathname. This is referred to as a "logical" device, since it appears to the Amiga and the user as a device, but is in fact a directory. You can use this as a convenient shorthand to refer to lengthy pathnames, or to refer to a variety of different directories by the same name (just change the assignment when you want the program to change directories). You can remove assignments by giving only NAME:, or by giving a single minus ('-') as the directory or device name. There are also specifice keywords to remove assigns which will be covered later. In any case, all assigns are lost when the system is shut off or rebooted. In 2.x/3.x you can assign a single device name to many directories by simply listing all of the directories after the device name. S:, L:, C:, FONTS:, DEVS:, LIBS:, T:, and SYS: are all made during normal startups. All these assigns directly relate with system operation. Therefor, they should not be tampered with unless you are prepared to crash your system! So, don't mess with system assigns unless you know absolutly what you are doing... If there is already a directory with an assignment, any new assignment will replace it. You cannot, however, assign the same name to a device that already exists. So an assign to device Work: if a disk whose name Work: is already mounted. OPTIONS LIST Lists the current assignments. Under 1.3, if you specify a single already assigned name on the command line with LIST, it will be removed from the device list. Under 2.x/ 3.x you can either make or remove assignments along with listing them. EXISTS Takes a logical device name as an argument. If the name exists, the device name and its assignment are displayed. If the name does not exist, then the condition flag is set to WARN (return flag 5). This will cause an IF WARN batch file statement to succeed. REMOVE For 1.3: Takes a logical device name as an argument, and removes it from the device list. This is useful largely to individuals writing handlers, careless use of this option can easily crash the Amiga. It will not, however free up the memory that was taken up with the assign. For 2.x/3.x: It can be used to delete one directory from a list of assigns. Opposite of ADD (see below). DISMOUNT 2.X/3.X ONLY: Used exactly like the REMOVE keyword for 1.3 to remove a device from a list of mounted devices. DEFER 2.x/3.x Only: Postpones the assign until a command tries to access that device. Defer will not throw out an error if it searches for a directory and it does not exist. PATH 2.x/3.x Only: This expands on the DEFER keyword. Whereas DEFER eventually binds the assign, PATH keeps the assign non-binding. Not only will it wait for a command to access that device, but it will reevaluate the assign every other time that device is requested for. (NB: This is very convenient if you are a floppy only user. You will not have to replace the Workbench each time FONTS: is requested. Instead, you can insert different floppy named fonts: each time that device is scanned for.) PATH will not accept multi directory assigns. ADD 2.x/3.x Only: Let's you add new directories to an existing assign. For instance, if you assign a device that is alread assigned you will lose your old assign. If you use the ADD keyword, you will add the new assign to the old assign. VOLS DIRS DEVICES 2.x/3.x Only: Limits the information that is displayed when you list your assigns. VOLS shows you only which volumes are assigned, DIRS shows you only which directories are assigned. DEVICES shows you only which devices are assigned. If none of these keywords are used then all three kind of information are displayed. CAUTIONS Random or careless assignments of the Amiga's pre-assigned devices can cause mass confusion. Random or careless use of the REMOVE option can cause a GURU (and crash your sytem). SEE ALSO Execute EXAMPLES 1. ASSIGN DICTIONARY: df1:usr/lib/dictionary DICTIONARY: may now be used as a synonym for the complete path df1:usr/lib/dictionary. If a program uses the logical device DICTIONARY: rather than a hardcoded directory name, then changing the DICTIONARY: assignment will change the dictionary that the program will use. Assign allows a practically infinite number of assignments or deletions to be made on one command line. You may remove an assignment by using a minus '-' sign instead of a logical directory or filename to subtract this assignment from the device list. 2. To return all the assignments made to your system just enter: Assign 3. 1.3 Only: To assign POOF: to the disk in DF0:, remove the assignments for PUF: and DUF: and assigns CRUFT: to HD0:. ASSIGN POOF: DF0: PUF: - DUF: - CRUFT: HD0: 4.2.x/3.x Only: To assign multiple paths to one device: Assign Music: Work:DeliTracker/Mods Work:OctaMed/Meds To assign Fonts: to df0:Fonts only when a program tries to access Fonts: Assign Fonts: Df0:Fonts DEFER @Alias (1.x,2.x,3.x Internal Command) NAME Alias - Create short names for longer command strings. SYNOPSIS Alias [alias [string] ] DESCRIPTION This command lets you make short names (aliases) for longer command strings. When a word is typed on the CLI, AmigaDOS will subsitute a longer string for it. This longer string may also contain arguments as well as commands. It can also display a list of alias assignments. For an alias to become global it MUST be entered in the s:shell-startup script. Otherwise, it can only be used by the shell that created it or through the NewCLI command called from the same shell it was created. EXAMPLES 1. To shorten the Delete command to DL Alias DL Delete 2. To copy df0: to df1: using cop Alias cop Sys:System/Diskcopy df0: to df1: 3. To copy an entire directory (empty or not) Alias cp copy [] ALL (When you type cp directory it gets expanded to: copy directory All @Binddrivers (1.3,2.x,3.x) (location: C) NAME Binddrivers - Mounts device drivers residing in your Expansion Drawer. SYNOPSIS Binddrivers DESCRIPTION Locates device drivers reisiding in the Expansion drawer of your Workbench: disk. It then activates those drivers for use. This is useful to add devices to your system harddrives that are not mounted by the operating system. You will also find binddrivers in your startup-sequence. This way, it can mount any external devices during startup. All external devices can be found in the 'expansion' drawer of the Workbench. If you don't have a device in your expansion drawer then this line in the startup-sequence does not do anything. Even if you do not use Binddrivers Commodore explicitely says NOT to tamper with the start-up sequence. So, delete this line only at your own risk. NB: This is not part of 1.2. EXAMPLE 1. To load the device drivers in the Expansion directory of sys: Binddrivers @Break(V1.3, 2.x, 3.x: internal command) NAME Break - Send a signal to a background process. SYNOPSIS Break Process=T=Task/a A=ALL/s C/s D/s E/s F/s DESCRIPTION Many programs which run from the CLI will respond to the typing of one of the control characters C D E or F. By far the most common is control-C which usually causes a process to terminate. If you execute a task in the background (by using Run or ARun), you will not be able to send it a break signal from the keyboard, and that is where Break comes in. Once you know the CLI number of the process you wish to signal (available immediately after you run the process or by using the Status program), you can send one of these control signals to the background process. It simulates selecting a CLI process with the mouse and pressing the specified CTRL-key keystrokes. You may trigger up to four breaks at a time. EXAMPLE 1. To send a control C to background process number 2: Break 2 C or Break 2 (Break defaults to control C) 2. To send ALL control signals to background process number 3: Break 3 C D E F or Break 3 ALL 3. 2.x/3.x Only: To signal a break to a program running under the WAIT command: Break 'STATUS Com=Wait' CONSIDERATIONS Not all programs respond to break requests. SEE ALSO Status @CD(V1.3 in C:) (2.x/3.x Internal) NAME CD - Report or change the current directory. SYNOPSIS CD Dir DESCRIPTION CD when given a valid directory name, makes that directory the current or default working directory. To display the current directory, type CD without any arguments. It also has a simple pattern matching capability. You may use a wildcard specification as an argument to CD, CD will make the first directory it finds that matches the pattern the current directory. Pattern matching is utilized with the Amiga wildcards). You can also move up one directory by using multiple slashes (/). For instance, if the current directory is: Work:Art/AGA by typing CD // you will change to the Work: directory. 2.x/3.x only: You can also change directories by simply typing the path name at the shell prompt without typing 'CD'. The CD command is only needed if there are any spaces in the path name. In this case you must place the entire path in quotes. NB: AmigaDOS handles default drives unlike any other personal computer. Let's say you insert a disk named Stuff: in df0: and type CD df0:. Then, you remove the disk and insert a disk named Things: and type dir df0:, you will be requested to insert Stuff: in df0:. To get around this, merely type Cd df0: whenever a new disk is inserted. This makes your Amiga read the new volume label and it forgets all about the old disk. EXAMPLE 1. To change directory to df0:libs CD DF0:LIBS 2. To report current directory CD 3. To make any disk in Drive 0 the current directory CD ROOT 4. To change back to your root directory (2.x/3/x only) CD : 5. To move back up two directories (2.x/3.x only) CD // SEE ALSO Prompt @ChangeTaskPri(V1.3,2.x,3.x) Location: C:) NAME ChangeTaskPri - Change a tasks execution priority. SYNOPSIS ChangeTaskPri [P=Pri] [T=TASK=PROCESS] DESCRIPTION By increasing/decreasing the priority of various tasks in the system, you can increase/decrease the amount of CPU time each task is allocated. If no type the command without a number, it will return the task priority number of that command. If executed with no arguments, ChangeTaskPri will return the priority of the currently executing process. This is useful in shell scripts. Your Amiga's operating system was created where each task that is running gets assigned a priority from -128 to 127. The processor examines this number and prioritises the tasks. The higher the number the more processing time will be alloted to it by the processor. WARNING: Never raise a task priority higher than 5 or less than -5. If you raise it above 5 you will override important system tasks such as the input handler (which checks the keyboard and the mouse). If the priority is below -5 it will be completely shut out of the CPU by the most trivial of instruction. EXAMPLE 1. To change task 3's priority to -5 ChangeTaskPri -5 Process 3 2. To Change current CLI's priority ChangeTaskPri 5 3. 2.x/3.x ONLY: To utilize the backtick feature to change the priority of the C:CONCLIP task to 5 ChangeTaskPri 5 Process 'Status com=c:conclip' @Cmp(V1.3 ARP Only) NAME Cmp - Compare files and report differences. SYNOPSIS Cmp From With FULL QUICK ALL DESCRIPTION Use Cmp to display differences between binary or text files. When comparing single files, the return code will be set to WARN if the files do not match. This is useful in scripts with IF statements. The return code on complex pattern matches with more than one file will always be zero. When specifying directories as either the From or With arguments, you may use a dot which means "current directory". You can use either C-e (Control E) or C-f (Control F) to abort the comparison of the current files and move on to the next. This is most useful with multiple input files and the FULL (see below) option. As usual, a C-c (Control C) will abort the program all together. INPUT FILES You can specify the file or files to be compared quite easily and naturally with Cmp using simple pathnames or wildcard patterns or even directory names. When you specify wildcards and/or directories to be compared, Cmp will compare files with the same names in each directory. Cmp will not abort if it cannot find the second file, it will simply print an informative message and go on to the next file. If you need to compare files with different names, then you must specify each name in full as the With name and the From name. A more detailed explanation follows: If From is a file, then With may be either a directory or another file. If a directory is supplied, then Cmp looks for a file with the same name as the From file in that directory: So, to a compare File with RAD:Dir/File2 Cmp File RAD:dir/File2 And to compare File with DirName/File Cmp File DirName You may also use a wildcard pattern as the From file. In this case, the With name must be a directory. Cmp expands the wildcard specification and tries to find files with that name in the With directory: Cmp File RAD:Foo/$?.c DF0:c Finally, you can also use two directory names as the From and With specification. This will compare all the files of the same name in the From directory with all the files of the same name in the With directory: Cmp Dir1 Dir2 OPTIONS FULL This will display all points at which the two files differ. The display is of the form "Offset: Byte1 Byte2" where Offset is in decimal and Byte1 Byte2 are in hex. Use C-e or C-f to move to the next file in the series, or C-c to abort. QUICK The QUICK option will check to see if the two files appear to be identical, by first comparing the date stamps and file lengths, and if these are the same the file comparison is skipped saving some time. ALL If there are subdirectories within the directories you are comparing, the ALL switch will force Cmp to recursively descend these directories, comparing files as appropriate. NOTE This command is new with V1.3 of ARP, it is not available with the Commodore distribution. @CONCLIP (2.X/3.X only) (location: C:) NAME Conclip- Directs console device to use the clipboard for cutting-and-pasting. SYNOPSIS CONCLIP [UNIT clipnum] [OFF] DESCRIPTION By default, the Amiga's console device only uses its own internal buffer for copying and pasting. This command directs the console device to use the clipboard for its copying and pasting. Copy-and-Paste lets you copy a block of text from a console window by drag-selecting it with the mouse then pressing RightAmiga-C. You can then paste this into another console window by activating that console and pressing the RightAMiga- V. Conclip not only lets you paste into other consoles but also into the window of any other application which supports the clipboard. It's an extremely good idea to make sure it is in your Startup-Sequence. This way, you will not have to worry about it. Note: Conclip requires the iffparse.library to be in your LIBS: drawer and the clipboard.device file to be in your DEVS: drawer. KEYWORDS UNIT Lets you specify the device unit number from 0 to 255. This designates the clipboard device number you wish to paste to. You do not have to add the word 'UNIT', you can merely specify the number. OFF Lets you turn off the clipboard device for that console. There is really no need to do this as it will never effect the operation of anything else. EXAMPLES 1. To direct the console to use the clipboard to copy-and-paste: Conclip 2. To change the clipboard unit number used by the console device to unit 3: Conclip 3 (By the way, the console device is utilized to accept keyboard and mouse strokes and print them to the screen. The output goes to a console window. The CLI has its very own console window.) @Copy(V1.3,2.x,3.x) (in the C: directory)) NAME Copy - Copy files. SYNOPSIS Copy From To ALL QUIET BUF=BUFFER CLONE DATES NOPRO COM FLAGS QUICK DESCRIPTION COPY duplicates the contents of the file or files (if wildcards or a directory is given) of its FROM argument to the file or directory specified in its TO argument, overwriting any existing file or files of the same names. FILE SPECIFICATION The From argument may be a file, a directory or a wildcard pattern. You can use a dot '.' as either the From or To directory to indicate the current directory. Double quotes "" can be used to refer to the current directory. If you copy a file, you may give that file the same name or a different name as the original. If the destination has the same name as the original then the new copy will replace it. Copy can duplicate many copies of a file to the same directory if dirrerent names are used. It can also duplicate files to many different directories. If the From argument is a directory or a pattern, the To argument is assumed to be a directory or destination replacement pattern. If the directory specified in the To argument does not exist, it will be created for you. If you include wildcard characters in the To argument, these are taken to be a request to use a pattern substitution for the destination filename. The expected syntax is: | You may specify neither, one, or both of these optional tags. If you exceed the length of an AmigaDOS filename (30 characters as of this writing) the name will be silently truncated. You can also indicate which portion of the From filename you want to be replaced by using the wildcard characters in the source pattern. As an example, the command: Copy l#? TO Ram: will copy all files beginning with an 'l' to the Ram: directory. In 1.3 you CANNOT use wildcards for Directory names, only file names. 2.x/3.x allows this. 1.3 will not let you copy a file to a directory that does not exist. In 2.x/3.x COPY will create a directory if one does not exist. If you copy a file to the same directory it cannot have a file with that same name of the protection bit is set on the file being copied to. The from statement is not needed as long as the source and target files are in the appropriate order. If the orders are changed (Copy To filename FROM filename), the FROM is required. If you don't specify a directory, but the TO keyword is used, then the current directory is copied to the destination. For instance, COPY TO Work: will copy the entire contents of the current directory to Work:. Devices such as PRT: and SPEAK: can be designated as the destination of any file being copied. 2.x/3.x Only: You can chose multiple FROM files as well as multiple TO files. OPTIONS ALL Copies ALL the files from the source directory to the destination directory or device. This will recursively descend all subdirectories found in the From directory, and create them (if they do not already exist) in the To directory. Without this switch, only the first level of the directory hierarchy will be duplicated. QUIET Performs a Copy without reporting what it is doing. This is useful for doing copies in the background, when you do not wish to be disturbed by informative messages. Note that errors will still be reported. BUF=BUFFER This allows you to specify the number of 512 byte buffers used during the copy. Unlike the Commodore Copy, which uses a fixed number of buffers if this option is not specified (currently, 200 buffers), the ARP Copy sets its internal buffer size intelligently as a function of how much memory your system contains and the size of the file to be copied. Using this option overrides this intelligent behavior. CLONE This instructs Copy to duplicate the date, comments and protection bits (except the archive bit) of the original file. The default is to Copy only the protection bits. (also see Environment, below). This is the same as using both the DATE and COM keywords. DATE This option instructs Copy to duplicate the datestamp (also see Environment, below). NOPRO By default, Copy duplicates the protection bits of the file(s) (except the archive bit). Using this option will override this behavior, and cause the file to be created with the current system default protection (also see Environment, below). COM This forces Copy to duplicate the comment for the file. The default is not to duplicate the comment (also see Environment, below). QUICK This ARP addition is a highly useful option which will duplicate files only if the destination file does not exist or is not the same. Copy uses the Datestamp, Filesize, Protect bits, and also the Filenote (but only if you have enabled copying filenotes) to determine whether or not the file is the same. Since a byte by byte compare is not done, it is possible to fool Copy. However, in normal operation of the Amiga, this dramatically speeds up Copies between directories and is perfectly safe (also see Environment, below). FLAGS You can override the current setting of your environment flags using this keyword. Any option specified on the command line overrides the default settings specified by the copyflags environment variable. This keyword takes a string of the same type used for the copyflags variable. For a discussion of these flags, see Environment, below. NOREQ Normally, whenever you try to copy to a directory that does not exist a requestor will pop up asking you to insert it. If you do not want that little requestor, then use this keyword. This is useful for when you want to write a script for someone else who does not have a device you want to try to copy to (such as a printer or a speech device- speech devices were removed from the Workbench with 2.0). ENVIRONMENT If you prefer a behavior for copy other than the default, you can specify this behavior permanently by setting a value for the copyflags environment variable. This variable takes a string of characters composed of the following: N Always copy filenotes (see COM, above). C Always copy original datestamp (see DATES, above). Q Always copy QUICK (see QUICK, above). P Never copy protection flags (see NOPRO, above). O This flag does not correspond to any command line arguments. When this flag is set, Copy will only duplicate files which already exist in the destination directory, it stands for 'OLD', and essentially performs an update operation. This is extremely useful when trying to update old software with new software. These flags can be overridden by using a command line option, or by using the FLAGS keyword to specify new ones. Note also that case is not significant. You can set the copyflags variable using Set, SetEnv, or directly from the command line if you are using the Shell instead of the CLI. Set copyflags=CQ SetEnv copyflags=CQ The settings shown above is perhaps the most common: it enables copying datestamps, protection bits, and the QUICK option. EXAMPLE 1. To perform an update from one directory to another without using copyflags, use: Copy NewDir OldDir FLAGS=O 2. To copy a file called TheFile to OtherFile in the same dir: Copy TheFile Otherfile or Copy TheFile to Otherfile or Copy To Otherfile From TheFile 3. To copy all the files from Df0: to Work: Copy Work: df0: 4. To copy all files and subdirectories from df0: to Work: Copy Df0: Work: ALL 5. Copy all the files in the current directory to Ram: Copy "" Ram: 6. To Copy a file called Dudes in the current directory to a file with the same name to a directory called :WildWest/Cowboys, which is on the same disk: Copy Dudes :WildWest/Cowboys 7. To Copy selected files from the current directory to the Stuff: directory. Copy "" Stuff: @CPU (V2.x & 3.x only) (located in the C: Directory) NAME CPU - Identifies which processor you have (68000, 68020,68030, or 68040...). It also sets the advanced options of non 68000 or 68010 processors. SYNOPSIS CPU Cache Nocache DataCache NoDataCache Instcache Noinstcache ExternalCache NoExternalCache CopyBack NoCopyBack Burst NoBurst InstBurst NoInstburst DataBurst NoDataBurst Trap NoTrap FastRom NoFastRom NoMMUText Check 68010|68020|68030|68040|68881|68882| FPU|MMU OPTIONS Cache Nocache DataCache NoDataCache Instcache Noinstcache ExternalCache NoExternalCache CopyBack NoCopyBack: These are used to control the cache features of all Motorola processors over 68010. These higher end processors all have higher end instruction caches, which stores processes inside the CPU itself. This allows those internal functions to perform lightening fast because they are inherant to the CPU and do not have to be retrieved from memory. Instcache/NoInstcache turns these functions on or off. The 68030 & 68040 have a data cache in addition to the instruction cache. These allow data to be retried from memory in one grand instruction, thereby lowering your CPU's overhead. DATACACHE / NODATACACHE turns this on or off. CACHE / NOCACHE can turn on or off all the caches. In 1.3 caches are off by default and should be turned on with the CPU command in your startup-sequence. 2.x/3.x has them turned on as a default. Some older programs (games mostly) that have problems running with the higher end processors. These problems may sometimes be solved by turning all the caches off. 2.1 has added the CopyBack and NoCopyBack flags. These help you manage the datacache on the 68040 which does not automatically update the cache as changes are made to the data. By default, this is off because it conflicts with too many programs to be of any use. In addition to internal caches, there are also external caches which can be turned on or off with the ExternalCache or NoExternalCache flags. Burst NoBurst InstBurst NoInstburst DataBurst NoDataBurst: If your Amiga's memory is configured to accept a special processor mode which feeds data at a superduper fast speed you can utilize the Burst mode. InstBurst and NoInstBurst turn on or off the instruction mode in databursts. DataBurst and NoDataBurst turn on or off the data mode in databursts. Burst and NoBurst control both the instruction and data modes. Trap/NoTrap: This is a programmer's debugging flag. These will set or clear the memory access trap which warns you if your program is trying to access the lower 256 bytes of memory or any memory above the 16 megabyte address (this 16 megabye hit is only noticed in the 68000 processor, 68010 and above allow higher end memory to be addressed). This illegal entry information is sent via the serial port. To use this function there must be a 9600 bps terminal hooked up to your serial port as well as the higher end processor. FastROM / NoFastROM: The 68000 processor is a 32-bit processor that is accessed 16-bits at a time. If you add an accelerator that has a full 32-bit processor and an MMU, you can remap the kickstart into that 32-bit RAM and the MMU will make it appear as though that is where the Kickstart really lives. The FastROM command moves the ROM image there, while the NoFastROM removes it from that area. NoMMUTest: Lets you remap kickstart to 32-bit ram without actually checking to see if it is being used. This is a function of the MMU (Memory Management Unit). Check 68010|68020|68030|68040|68881|68882|FPU|MMU This is used to check for the existence of why type of processor or co-processor you have installed. For example, if you type: "CPU Check 68000" and you have a 68000 installed, it will return a 1. If you have any other processor installed a 0 will be returned. EXAMPLE 1. To turn off the instruction cache, turn the data cache of, and move the Kickstart ROM image to protected 32-bit memory: CPU NoInstcache NoDataCache FastRom @Date(V1.3, 2.x, 3.x) (Locatin C:)) NAME DATE - Set or display the system date. SYNOPSIS DATE [Date] [Time] [TO=VER] DESCRIPTION Date is used to set the systems idea of the current date and time, or to display the systems idea of the current date and time. To display the current system time simply use Date with no arguments. You may specify a TO or verification file to send the date to, if no TO file is specified, the date is displayed in the current window. To set the time you use the format HH:MM:SS where H stands for hours, M stands for minutes, and S stands for seconds. Leading zeroes are optional for all versions except 1.2. 1.2 requires that you include a leading zero before the 10th month. Commodore has a very strict formula for the date formats. If you type a two digit year from 78 to 99 AmigaDos will translate that as 1978 to 1999. If you type a two digit number from 00 to 45 AmigaDos will translate that as 2000 to 2045. You cannot enter a year from 1946 to 1977. If you accidently set a year from 0 to 45 all files created will have the datestamp from the 21st century. When you finally discover your mistake, and change the date back to a correct date, that file will be datestamped 'Future' since the 21st century is in the future. Saturday, Sunday, Monday, and the rest of the days of the week can be used as flags. The system will evaluate the day then advance the system date to match the specified day of the week. So, if it is Monday and you specify Thursday, the system clock will advance by three days. FOR 1.3 Only: SETCLOCK is used in the startup-sequence to automatically read the system's hardware clock (if present). The A1000 and A500 did not come with a clock installed. Therefor, AmigaDOS would check the boot disk for the date of most recent file and sets the system date according to that. The Date command is then used to set the proper date and time. This was lost anytime you rebooted the computer or utilized the SETCLOCK SAVE command. FOR 2.x/3.x: The clock is read automatically by the system without utilizing the SETCLOCK command. Therefor, you will never see it listed anywhere. EXAMPLES 1. To use default AmigaDOS format. SET dateformat=0 2. To set the date, using AmigaDOS format Date 1-jan-88 3. To set the date to the next day's date and the time to 12:00 Date Tomorrow 12:00 @Delete(V1.3, 2.x, 3.x...in C: directory)) NAME Delete - Delete any number of files or directories. SYNOPSIS Delete [Files] [ALL] [Q=QUIET] DESCRIPTION Under 1.3 you can only delete up to ten files or directories with a single Delete command. Wildcards are acceptable. Under 2.x/3.x you can specify any number of files to delete on the command line, and you can also use wildcard patterns for any or all of these files. OPTIONS ALL By default, you can only Delete empty directories. If you wish to Delete a directory and everything it contains, you can specify this option on the command line. Note that directories may contain other directories, which themselves may contain directories or files: This option will delete that entire branch of the directory tree, including these additional directories and files. Q=QUIET If you use the ALL switch, or if you specify wildcard patterns, Delete displays a message with each file that it deletes. This option causes Delete to do its work silently, though error messages are still reported. FORCE If the 'd' protection bit is set for a file or directory then that file is protected from deletion. But, by using the FORCE keyword, any file will be deleted including the ones that are 'protected'. EXAMPLE 1. Delete all files in the current directory Delete #? 2. Deletes all files in the directory which start with this or that. Delete (This|that)#? @Dir(V1.3, 2.x/3.x) (located in the C: directory) NAME Dir - Pretty display of files and directories. SYNOPSIS DIR Dir OPT [ADFHIS] SIZE INTER HILITE FILES DIRS ALL DESCRIPTION Dir by itself displays any files and directories in the current directory. By default, Dir will display any subdirectories, one per line, and then any files, in two columns, in sorted order. Directories are followed by the string "(dir)". You can specify an alternate directory to display as an argument, and you may also use wildcards. If you use wildcards, Dir will display all files that match that wildcard pattern. If it encounters a directory during the course of its search for matching patterns, it will display the name of the directory, and also its contents. OPTIONS OPT This flag along with a single letter can represent the option you desire, or you may use the clearer keyword equivalents supplied. The options and their keyword equivalents are described below: SIZE or OPT S This ARP option displays the names of the files and their sizes in two columns on the display device. If a directory is encountered, it is identified as usual with a "(dir)". HILITE or OPT H This ARP option enables pretty printing of Dirs output. All directory names will be displayed in inverse video. FILES or OPT F This displays only files, any directories found will will not be displayed. DIRS or OPT D This displays only directories, any files found will not be displayed. ALL or Opt A This option displays the complete contents of that branch of the directory tree. As Dir descends a level, the indentation is increased to make the organization of the disk clearer to the eye. You may use some of the other options or keywords along with ALL to generate the display you need. INTER or OPT I This allows interactive file browsing through a directory or a disk. Using this option, you will be presented with a file or directory name, followed by a question mark. You can find out what additional options are available to you at this point by typing another question mark '?', and pressing return. These are: B=BACK Moves backwards, up the directory tree. If you are at the top, this will exit the listing. DEL=DELETE This will delete the current file. E=ENTER This will enter a directory. Note that you must be at a directory entry in order for this option to be valid. Q=QUIT This will quit Dir. T=TYPE This will type the current file. C=COM This takes any command as an argument, and sends it to a subshell. Any shell command can be used here, including the IO Redirection operators (<, >, and >>). If you do not specify a command as an argument, you will be prompted for one. EXAMPLES 1. To get a listing of all directories on drive DF1: DIR DF1: ALL DIRS or DIR DF1: OPT AD 2. To get a listing of all directories and files and the sizes of the files on drive df0:, as well as displaying the directories in inverse video do: DIR DF1: ALL SIZES HILITE or DF1: OPT ASH @DiskChange(V1.3, 2.x, 3.x) (located C:)) NAME DiskChange - Inform AmigaDOS that a 5 1/4 disk has been changed. SYNOPSIS DiskChange Dev DESCRIPTION 5 1/4 inch disk drives do not detect when there has been a disk swap, and therefore cannot inform AmigaDOS. After changing disks in the 5 1/4 inch disk drive, you must issue this command. You will also need to do this if you make a change to the disk's name using Relabel and you want the Workbench to hear about it. Note that DiskChange may also be useful with other types of media, such as removable media hard disks, or if you are running FFS on floppy drives. EXAMPLE 1. To inform AmigaDOS that you have changed a disk in an external 5 1/4 inch drive. Diskchange df1: 2. To inform AmigaDOS that you have changed a disk in an external 5 1/4 inch disk drive that is mounted right behind a 3 1/2 inch external drive: Diskchange df2: @DiskCopy (1.2 in C: Directory) (1.3, 2.x, 3.x internal) NAME Diskcopy - Copies entire diskettes. SYNOPSIS DiskCopy FROM (source drive) TO (Destination drive) NAME (VolumeName) VERIFY MULTI Other computer systems require you to format a disk before you make copies of old data. The Amiga lets you copy to a disk that has information already stored on it. All that old information will be lost though. This lets you make backups of all important disk while helping you dispose of files that you no longer use. DiskCopy is very useful because it takes just as much time to format a blank disk as it does to perform a diskcopy. But, if you only have a few files you wish to copy, it may be quicker to just delete the files on the destination disk you don't need using the delete command then using the Copy command to transfer the ones you want. DiskCopy can also be used devices of different types. For instance you can copy between Ram: and Rad:. Or, df2: and Ram. But, for it to work with Rad:, Rad: must contain the same number of tracks (80) and blocks per track (11) as a floppy device. KEYWORDS FROM This is the source, or the device you are copying from. If you only have one disk drive, this will be df0: or the actual name of the disk mounted there (eg MyDisk:). It can also be df1:, df2:, df3:, or df4: (if you actually have these optional drives). OR, it can be the RAD: or RAM: drive as stated before. Remember you RAD: must be created in the same nature as a regular disk drive for this to work. TO This is the desitination, or the device you are copying to. If you have only one diskdrive the copy may take quite a few disk swaps. This is because the contents of the source disk gets buffered into ram: before getting transferred to the destination disk. If you have an original 256K A1000, this may take up to eight swaps. If you have an unexpanded A500, you're looking at about three swaps. If you have one meg of ram, you should not need to swap more than once. If you have two diskdrives you are the lucky one. This is because you will not have to make any swaps either because the data is passed straight through between the drives. If you have 1.3 the TO keyword is mandetory! The command will not function without it. But, under 2.x/3.x you do not need to put this keyword. NAME This is the name you are giving to the new copy. If you don't give a name, then the new volume will have the same name as the original. Despite the names being the same, there is some 'hidden' information on the disk which will distinguish the two disks from each other. When diskcopy is stared, and the disks are being copied a neat little status bar opens up on your window showing you the progress as all 80 tracks are copied. YOu can cancel this process at any time by hitting the control break keys: Ctrl-C and then Return. If you hit these keys after the copying has already started, all information on the destination disk will be lost. The destination disk will also be rendered useless until it is formatted or diskcopied again. NOVERIFY As AmigaDOS copies a disk, it verifies each sector after it formats it. If you don't want AmigaDOS to check its steps, then use this keyword. There is no point in using this keyword. It is better to be safe than sorry. And a few seconds of time spent verifying your copying will save you tons of hearache later. MULTI Lets you load the entire disk into memory (if there is at least 880k of free memory). You can then insert as many destination disks as you want making multiple copies. The system will prompt you when it is ready for the next disk. EXAMPLES 1. To make a copy from df0: to df1: Diskcopy from df0: to df1: ; for any version of AmigaDOS. Diskcopy from df0: df1: ; for 2.x/3.x only Diskcopy df0: df1: ; for 2.x/3.x only @DiskDoctor (V 1.3 and 2.04. Omitted after 2.04) (in C: directory) NAME DiskDoctor - Reconstructs the file structure of corrupted disks. SYNOPSIS DiskDoctor (drivename) DESCRIPTION This can be described in two words: it sucks. It is useless. It has no purpose on any computer. That is why it was removed after 2.04. The concept was to repair directory and file structures that were destroyed for any number of reasons. These reasons can be anything from removing the disk while it is still being accessed to a nuclear explosion. When any type of magnetism comes in contact with your floppy the data is scrambled and AmigaDOS can't read anything there. You will get a variety of errors such as 'Volume is not validated', 'Not a DOS disk', 'Disk is unreadable', or the ever so present 'Checksum Error' if such damage occured. Diskdoctor attempts to correct the damaged data on the disk and save as much of it as it can. DiskDoctor can only attempt to repair FFS disks if the DEVS: Mountlist is set to 0x444F5301 under the DOSTYPE keyword. DiskDoctor is quite reckless when it repairs your disk. You see, after it retrieves what data it can salvage overwriting other information that may still be used on the disk. It does this over- writing indescriminatly without recognition of importance or existence. Therefor, if you ever use DiskDoctor, make sure you are trying to repair a copy of your disk. There is no reason to use this when there are so many fabulous disksalvage programs. The most notible is DiskSalv created by David Haynie (former Commodore engineer and all around Amiga Demi-God). His program along with the many other USEFUL salvage programs that actually work are listed in the 'Replacements' selection of this reference program. Quarterback Tools (no longer being developed) and AmiBack Tools by Intelligent Designs are both running close second to DiskSalv. EXAMPLES I'M NOT GIVING ANY. THIS PROGRAM IS TOO STUPID AND USELESS TO EVEN ACKNOWLEDGE IT WITH AN EXAMPLE. @Echo(V1.3 in C:) (2.x/3.x internal)) NAME Echo - Echo a string to the terminal. SYNOPSIS Echo [string] NOLINE FIRST LEN DESCRIPTION Echo displays its argument to the current output, this can be the printer, a file or the terminal. Echo is typically used in scripts, but it can also be used (and useful) to send escape sequences to things like printers. 2.x/3.x only: You can use echo to output a file to the environment. This is shown in the example below. Note that with the added keywords, you MUST use double quotes to delimit a line to echo under 1.3. Under 2.x/3.x you don't need the quotes ONLY if it appears last on the command line. If you want to add a line feed, use the *N character. But, if you use this option in either 1.3, 2.x, or 3.x then quotes must be used. OPTIONS NOLINE This suppresses the newline which Echo automatically adds at the end of its argument. This is useful in that it allows you to build a single line of text using the output of two or more commands. FIRST This option takes a numeric argument, which indicates which character position to begin output at. Any character before FIRST will not be displayed. This is useful with LEN (see below). LEN This option takes a numeric argument, which indicates how many characters to output. If you also supply a FIRST argument (see above), character output will begin with that character, for LEN characters. If LEN is used without the FIRST keyword, then the final LEN characters will be displayed. EXAMPLES 1. To display "Hello World" on the terminal. Echo "Hello World!" 2. To advance the printer paper, and displays Hello World! on the printer. Note that you must have set your escape character to \ for this example to work. Echo >PRT: "\FHello World!" 3. To display "ello World!". Echo First 2 "Hello World!" 4. To display "rld!". Echo Len 4 "Hello World!" 5. To display "World!". Echo First 7 Len 6 "Hello World!" 6. To print the text file Ram:This.text to your screen. Echo Ram:This.text @Ed (1.3, 2.x, 3.x located in C:) SYNOPSIS The Amiga's built in full-screen text editor. Ed is a complete text editor. Due to the huge scope of the available commands you should consult your Amiga System manual on how to exactly use Ed. If enough people contact me to include a full tutorial in DOSMan, I will write one. FORMAT 1.3: ED FROM (name) [SIZE (numchars)] 2.x/3.x: ED [FROM] name] [SIZE numchars] [WITH comfile] [TABS interval] [WINDOW device] [WIDTH columns] [HEIGHT rows] KEYWORDS FROM This is the name of the file you wish to edit. If the file does not exist, Ed will create it. This keyword is optional as long as it is the first arguement in the Ed statement. SIZE This sets the size of the buffer which ED uses. If this is the second arguement in the command line, then the keyword is optional, you only need to type the number. SIZE defaults to 40,000 bytes. If your buffer is not big enough to hold the file you are editing, then you will get a warning message informing you of this from Ed. WITH 2.x/3.x Only: This lets you make an Ed command file to execute automatically. This is a command file that contains a list of extended instructions for Ed that will execute when the file is run. This exists in the form of a script. See your Amiga's manual on how to set up this command script. TABS 2.x/3.x Only: This lets you set how many spaces will be skipped when you hit the Tab key. The default Tab is three spaces. WINDOW, WIDTH, HEIGHT 2.x/3.x Only: The combination of these three commands would allow you to open Ed on a remote terminal. Window lets you specify this device (for example, AUX:). The Width and Height lets you set the demensions of the new window. 2.x/3.x Only: You can also edit binary files, not just plain ASCI text. EXAMPLE 1. To edit a text file called ThisText in the Work:TextFiles directory. Ed Work:TextFiles/ThisText 2. To edit a really big file of 75,000 kbytes in the Work:TextFiles Ed Work:TextFiles/ReallyBig.txt SIZE 80000 @EDIT (1.3, 2.x, 3.x) (Located in the C: Directory) SYNOPSIS An AmigaDOS line editor. FORMAT EDIT [FROM] fromname [TO] toname [WITH] withname [VER] vername [OPT W chars or WIDTH chars] [OPT P lines or PREVIOUS lines] EXPLANATION Unless you grew up with UNIX and really dig line editors you should really try a different program (even Ed) before you dive into Edit. What does set Edit apart from Ed (and most other text editors) is that it is able to edit binary files and it can execute a predefined list of line editor commands. Please note that starting with version 2 of Ed you can do the same thing, so there is really no need to keep both of these programs hanging around on your system disk. KEYWORDS FROM EDIT requires the FROM keyword. This will tell EDIT which file to edit. This filename must exist. EDIT will not create the file for you like Ed will. TO This will tell edit where to save the file to once you decide to finish. If this is the second command in your arguement, you do not need the TO keyword. EDIT is limited in the fact that it will not overwrite a file that already exists. If the TO filename is the same as the FROM filename then instead of overwriting the FROM filename it will be save the original as :t/edit.backup. The file you are working on then gets named and saved as the FROM filename. WITH This specifies a file which will be used as input to EDIT's command options. The contents of WITH must be a series of valid options for it to work. If WITH is the third argument in an EDIT command line, the keyword is optional. If you don't use this keyword you must manually input your parameters. Due to the huge scope of available commands you should consult your Amiga System manual on how to configure EDIT. If there is enough of an interest I will write a full tutorial on how to configure EDIT. VER This lets you specify where to send the output of EDIT to. You can send the output to any logical device including PRT: to print it. OPT W or WIDTH OPT P or PREVIOUS This lets you set the actual physical size of EDIT. WIDTH lets you set the actual line length. PREVIOUS lets you designate how many lines will be kept in EDIT's history buffer. The default for line length is 120 characters and the default history buffer is 40 lines. If you multiply the WIDTH by the PREVIOUS you will get the exact amount of RAM you need to reserve as a work buffer. This amount can be set with the STACK command. If you set the OPT W and OPT P options, you must use the OPT keyword with the W or P letters. EXAMPLES 1. To edit a file called MyText in the default directory: EDIT MyText 2. To edit a file called MyText and to save it under a file called YourText that is 5000 lines long: EDIT FROM MyText TO YourText OPT P5000 3. To edit a file called MyText and to use the editor commands located in the edit.prefs file (which you created earlier). The data will then be saved as YourText. And, to send all the messages and verifications from EDIT to your printer while setting the number of lines to 50 and a line width as 175: EDIT FROM MyText TO YourText WITH edit.prefs VER PRT: OPT W175 OPT P50 See also: STACK @Else (1.3 in C:) (2.x/3.x internal) NAME Else - FALSE clause of IF conditional. SYNOPSIS Else DESCRIPTION Else is used in combination with IF to perform conditional testing. If the IF conditional fails, control will be passed to the commands following the ELSE. If the IF conditional succeeds, then the commands following the ELSE (up to the concluding ENDIF) will be skipped. Note that Workbench 2.x and above contains a builtin version of this command. The 1.3 of Else cannot be executed outside of a script, while the 2.x/3.x version of Else can be executed inside or out of a script file. SEE ALSO IF ENDIF Execute @EndCLI (V1.3 in C:) (2.x/3.x internal) NAME EndCLI - Terminate a CLI or Shell. SYNOPSIS EndCLI DESCRIPTION EndCLI causes a shell process to terminate. The shell will shutdown, freeing all of its resources and closing its window (if it is interactive). Note that if another program is still using the console for a CLI, you may not be able to close a console CLI window even after running ENDCLI until you terminate that command. This is most likely to occur if you have "RUN" some command from the CLI and it is still executing when you try to EndCLI. 2.x/3.x Shell contains this command as a builtin. Also, you can press the CTRL-\ or click on the close button to exit your shell. SEE ALSO NewCLI NewSHELL @EndIf(V1.3 in C:) (v 2.x/3.x internal) NAME EndIf - Show end of IF ELSE Conditional. SYNOPSIS EndIf DESCRIPTION This is used to mark the end of a conditional block in a script. Note that in 2.x/3.x this command is builtin. If the tested condition proves false then all commands after ELSE and before ENDIF are executed. If the tested condition is true, then all commands after the IF and before the ELSE keywords are executed. SEE ALSO IF ELSE Execute ENDSHELL (1.3: Alias) (2.x/3.x Internal) NAME ENDSHELL - Exactly like ENDCLI except it can close the CLI or Shell window. SYNOPSIS ENDSHELL DESCRIPTION This terminates the CLI or Shell window just like the ENDCLI command does. Under 1.3 this command does not actually exist. It is created in the startup-sequence with the Alias command. But, it acts exactly like ENDCLI. SEE ALSO ENDCLI @EndSkip(V1.3 in C:) (2.x/3.x internal) NAME EndSkip - Unconditionally abort a SKIP in progress. SYNOPSIS EndSkip DESCRIPTION If EndSkip is encountered after executing a Skip command in a Script, the Skip will be aborted, and the fail level will be set to WARN. Note that in 2.x and 3.x this command is builtin. SEE ALSO Execute Skip Lab @Eval(V1.3, 2.x, and 3.x in C:) NAME Eval - evaluate arithmetic and logical expressions. SYNOPSIS Eval Value1/a Op Value2 TO/k L=LFORMAT/k DESCRIPTION Eval computes the results of simple arithmetic and logical expressions as applied to two arguments, and displays the result on its standard output. Numeric arguments may be input as: Decimal This is the default, no extra qualifiers needed. Hexadecimal Enter hexadecimal numbers as 0x or #x, for example: 0x1A or #x1A. Octal Enter octal numbers as 0 or #, for example: 0777 or #777. Binary Binary numbers (in ARP eval only) may be entered with #B, for example: B1111 Character Characters are supported only by the Commodore Eval. The operations supported are given below: addition + not ~ subtraction - left shift << multiplication * right shift >> division / negation - mod mod exclusive or xor and & bitwise equivalence eqv or | Any fractional amounts that result from this process are discarded. OPTIONS TO You can send the output of Eval to a file which is indicated in the path with this keyword. L=LFORMAT You can control the output format of Eval using this keyword. There are four formats you specify: hexadecimal (%X) Octal (%O), Decimal (%N), or ASCII (%C). The hex and octal formats require a number after the letter to indicate how many letters you want to print. For example, to display a hexadecimal number in a field of 8, you can do LFORMAT="%08lx". You can also include escape characters (such as *n for a newline) inside your LFORMAT string. For this release of Eval, you also need to always use the 'l' (for long) format character with all format commands. The default is set to Decimal. You can also include any text you desire in the format string by using quotes. For example: LFORMAT = "There are %N widgets sold." EXAMPLE 1. To find the sum of 2 + 2 and print the answer as 2 octal digits followed by a new line character. EVAL 2 + 2 LFORMAT = "%O2*N" @Execute(V1.3, 2.x, and 3.x in C:) NAME Execute - Cause the shell to execute commands from a file. SYNOPSIS Execute [Filename] [ARGS...] DESCRIPTION Execute causes the shell or CLI to read the commands from the filename specified as Execute's input argument. When the end of the file is reached, control returns to the keyboard. You can force the Shell to abort any script file processing by typing a C-d (Control D) sequence while the script is being executed. You can even include nest an Execute inside your script to cause one script to call another one during its execution. In AmigaDOS 1.3 and above, you can execute a script without typing EXECUTE and just typing name of the script if the 'S' bit is set. KEYWORDS FILENAME The name of the script to execute. ARGS Any arguments to be passed to the file. These may be any valid AmigaDOS string (including filenames and all sorts of devices. DIRECTIVES Execute recognizes several special commands known as Directives. Each of these Directives begins with a DOT '.', but this character can be redefined if needed. Execute is reasonably flexible in allowing you to redefine its special characters, which is quite fortunate, as you will soon see. In order for Execute to recognize these directives, the DOT character must be placed at the beginning of the line, and the directive name must follow immediately, with no intervening whitespace. You can also use the DOT (again, at the beginning of a line only) to introduce a comment. This usage is ".Anything" where whitespace is any of space, tab or newline. Many of these directives deal with passing arguments to scripts and establishing defaults for arguments. These are described below: .KEY and PARAMETERS The .KEY directive (which may be abbreviated as .K) is used to declare the names of parameters which will be used in the course of the script file. Note that these are not environment variables. If you intend to pass arguments to a script file, it is wise to use this directive as the first line of a file. If the first non-empty line (i.e., a line which contains anything other than a newline) does not contain a dot command (directive), then the arguments will not be processed. The .KEY directive accepts any legal template. These are the same kinds of templates you see all the time in the AmigaDOS commands. Note that currently, there is no support for multiargs (the /... template type) in scripts, and so you should not use this in your templates. All the usual processing associated with templates is active in scripts, including the '?' display of the template, and position independent arguments. When you use the .KEY directive, Execute matches up the users arguments with your template keywords, and if no error occurred, scans the file for any items surrounded with the BRA KET characters. These are initially '<' and '>', which is quite unfortunate, since these tend to conflict with the IO redirection operators. It is wise to change these to another character using the .BRA and .KET operators (see below). When a BRAKET sequence is encountered, Execute replaces the keyword inside the BRAKET with the users argument. If the user did not enter an argument for that keyword, and there is no default setting for this keyword, then Execute removes the argument all together, resulting in a NULL string. Arguments that do not take an argument, for example, switches (template type /S), are handled somewhat differently. If the user supplied the switch on the command line, then the braket sequence is replaced by the actual name of the switch, otherwise, it is null. DEFAULT VALUES FOR PARAMETERS This assigns the value string to all occurrences of the substitution argument described below. You can set default values for your variables in two ways. The first way is to use the .DEFAULT directive. .DEFAULT (which may be abbreviated as .DEF) takes a template keyword and a default value. If that keyword does not have a value at the time the .DEFAULT statement is scanned, then Execute binds the value to that keyword. Here is an example of its use: .DEFAULT Foobar "Testing123" Another way to set default values is by using the DOLLAR (initially each time the parameter is used, it does not set it permanently: Echo "" Note that a .DEFAULT statement will override all following DOLLAR defaults. The decision as to which to use is usually based on how many times you use that parameter. If you only use it once, then either will do. If you use it many times, then .DEFAULT is probably the simplest. Also note that there is not a conflict between this use of the DOLLAR and the use of the dollar during Shell environment expansion: The DOLLAR is special to Execute only inside of BRAKETS, and the shell expands the environment variables only after Execute has parsed the file. Unless you use environment variables inside of BRAKETs, there should be no need to change your .DOLLAR character. You can also use a double DOLLAR inside of brackets. This will be replaced by the current CLI number. CHANGING THE META CHARACTERS The following directives are used to change the default meta characters used by Execute. Each take a single character as their argument. .BRA and .KET These change the bracket characters (initially '<' and '>', respectively) to something else. It is highly recommended you make a habit of doing this, whether you think you need to or not. Good characters to use instead are the curly braces ('{' '}') since these are not needed for anything else, currently. .DOT This changes the DOT character (initially '.'). .DOL or .DOLLAR This changes the DOLLAR character (initially '$'). MISCELLANEOUS Execute may be nested, i.e., you may include Execute commands in scripts, which can also contain Execute commands. Execute will sometimes need to write a temporary file. If you have assigned a directory or device to T:, then this location will be used. If not, and there is a :T directory for the current directory, then Execute will create the assignment, and use this directory. Otherwise, it will attempt to create both the directory and the assignment in the current directory. EXECUTE uses <$$> with the task number of the CLI from which it is run to create this. EXAMPLES 1. To execute a script named RunThis located on Df0: EXECUTE df0:RunThis 2. Here is an example of a KEY directive which contains a switch. This illustrates a good way to handle and use /s style arguments in script files. .KEY MySwitch/s IF "" EQ "MySwitch" Echo "The switch is on!" ELSE Echo "The switch is off!" ENDIF If the user doesn't supply MySwitch as an argument on the command line, then the comparison will fail (the first argument will be ""), otherwise, the comparison will succeed (the switch is "on"). SEE ALSO If Skip Failat Lab Echo Quit @Failat(V1.3 in C:) (2.x, 3.x internal) NAME Failat - To set a fail level for a batch file. SYNOPSIS Failat RCLim DESCRIPTION When using Execute to run scripts, any command that returns an error greater than the current value of the Fail level will cause the shell to abort the script with an error message. You can use Failat to increase or decrease this level to whatever you need. The shell will reset the Fail level (usually 5, 10, 20 but can be any number) at the end of every script execution, so scripts always start out in a known state. Under 2.x/3.x the result code is stored int the environment variable RC, which is represented by $rc. The bigger the return code, the bigger the error. If the severity of the error is higher than the number you set then the script stops running. Once your FAILAT has been run in the script, the FAILAT level returns to 10. You can use FAILAT to a very high number and test the return codes that any of your IF statements return. EXAMPLE 1. To temporarily set the failure level to 30 Failat 30 This now makes it possible to execute commands that return error codes greater than 20, which would ordinarily cause Execute to stop with an error message. 2. To display the current failure level threshold. Failat @Fault(V1.3 in C:) (V2.x/3.x internal) NAME Fault - translate numeric error codes to ascii text. SYNOPSIS Fault Fault/... DESCRIPTION Normally when your Amiga has an error it returns a requestor telling you what you need to do. Many errors do not bother to open up this requestor, only a number (for example, 'Last command failed with error 330). This command accepts numeric those error codes and turns them into system error messages, or if the error code is not defined the numeric code is again displayed. Translates all the faults into English-lanuage explanations. The CLI and Shells (and many programs) call on Fault to report their errors for them. In 2.x/3.x this fault code is stored into the variable 'result 2'. The AmigaDOS command also does this but may not root out the exact problem. If the AmigaDOS command WHY does not satisfy your cuiriosity of what the error was about, then using Fault directly after it will expound on it. EXAMPLE 1. To display the error message associated with fault code 220: FAULT 220 2. To display the error messages with fault codes 216, 220, and 330: FAULT 216 220 330 @FF (ONLY in 1.3) (DOES NOT exist in 2.x/3.x) SYNOPSIS FF - Speeds up the text display. FORMAT FF [-O] [-N] [fontname] EXPLANATION This only exists in 1.3 because 2.x/3.x have fast text routines that are inherit with those systems. If you are using a standard 8x8 or 10x9 font FF will speed up the display of the text on 1.3 machines. Not only that, but you can use FF to replace the format system font as long as it is of the proper size and is fixed width. 2.x/3.x uses the Font Prefrences in the Prefrences drawer to perform this same task. KEYWORDS -O This tells FF to speed up the text. It is on by default. -N This tells FF to turn off the fast text routines and can be turned back on by reissuing the command. [fontname] This tells FF to replace the system default fonts (TOPAZ80 and TOPAZ60). The font you use to replace it must have the NewFont.font file as well a drawer which is associated with that font file containing the data for 8 or 9 size fonts, or both. If you designate a font that does not have those files available, the default Topaz fonts will be used. EXAMPLES 1. To turn on fast text routines: FF or FF -O 2. To turn on fast text routines while replacing the system fonts with the Neat.font: FF Neat.font @Filenote(V1.3, 2.x, 3.x in C:) NAME Filenote - Sets a comment for a file. SYNOPSIS Filenote [File]filename Comment DESCRIPTION You can set a comment for a file of up to 79 characters using this command. You can also remove the comment for a file using this command by specifying a null comment string. Comments may be viewed with the list command. When you COPY a file, the note does not get copied with it. When you RENAME a file, the note stays attached to that file. If you change the file in any way, except COPYing it, the file note does not get effected. If you add another filenote to a a file that already has one, then the old one gets deleted and the new one replaces it. If you LIST a directory, these filenotes are displayed. The notes will appear right below the file name with a : in front of it. If there is an icon attached to that file, then you can read or write a note through that icon's information window. These filenotes do not effect the file they are attached to in anyway what so ever. KEYWORDS FILE filename This is the file the note is to be attached to. If this is the first argument in the command string then the FILE keyword is optional. 1.3 only: Only one file can be annotated at a time. 2.x/3.x only: Wildcards are completely acceptable. You can also annotate as many files as you like at the same time. COMMENT string If this is the second argument in the command string then the COMMENT keyword is optional. This defines the note that is to be attached to it. The string must be enclosed in quotation. ALL 2.x/3.x only: Lets you add the same note to all the files in the specified directory and all its subdirectories. QUIET 2.x/3.x only: Does not list the files as the notes are being added. EXAMPLE 1. To attach a note that says "Here it is!" to your file ThisFile Filenote FILE ThisFile COMMENT "Here it is!" 2. To attach a note that says "Don't delete this no matter what!" to the File Important.text Filenote Important.text "Don't delete this no matter what!" SEE ALSO Copy List @FORMAT (1.3, 2.x, 3.x in SYS:System) NAME Format- Initializes a disk as being blank. SYNOPSIS FORMAT [DRIVE] [drivename] [NAME] [string] [NOICONS] [QUICK] [FFS] [OFS] [INT=international] [NOINT=nointernational] [DIRCACHE] [NODIRCACHE] DESCRIPTION FORMAT takes a disk and initialises it to make it empty. You can also specify a name for it, but it you don't it will name it 'empty. WARNING: All information on the disk will be erased while using this command. After typing FORMAT, you are prompted to insert a disk and hit the RETURN key. After you hit RETURN you cannot turn back. It can be interrupted by hitting the CTRL-C and then RETURN. But, some data will be lost. As the format occurs, the status of the format is displayed. Each cylinder number (0-79 for a double density floppy) clicks by on the screen until every cylinder is initialized then verified. After this entire process the volume name is assigned. If you are copying one disk to another DISKCOPY is a much faster command. This is because you must first FORMAT, then INSTALL, then COPY ALL the from between the disks. If you are using DISKCOPY all these steps are performed by the DISKCOPY command. The only time the FORMAT-COPY ALL routine is better than the DISKCOPY is when the information on the source disk have been deleted and rewritten so many times that the contents of the disk have become scattered. By formating the disk then copying all the files over, you are consolidating them. By consolidating them you will greatly speed up your disk accessing time. The only time DISKCOPY will be better on a scattered disk is if you optimize the disk first using one of the many optimizing programs available. KEYWORDS DRIVE drivename The drive which contains the disk to be formatted. The valid entries are df0: df1: df2: and df3:. FORMAT can be used on any logical device. These devices include harddrives, recoverable ram drives, or even removable media which is readable/writeable. WARNING: Make sure you are typing the write device name. By typing DH0: instead of DF0: my cause you lose the entire contents of your harddrive when you just wanted to format a floppy disk. NAME string This is the name you are giving to the disk you are formatting. The NAME keyword is absolutly mandatory. The NAME can be up to 31 characters long and if it contains spaces must be contained in quotes. NOICONS With this keyword prevents the Trashcan from getting created during the format process. QUICK This keyword makes FORMAT initialize only write over the root-block, the boot block, and the bitmap block, without formating the rest of the disk. This is good to do whenever you are formatting a disk that already has been formated before because it is many times faster. But, this keyword will not work if the disk has never been formatted before. FFS This keyword forces the disk to be formatted with the Fast File System (FFS). FFS lets you keept much more information on the disk than the OFS (Old File System). WB 1.3 cannot boot from FFS and may have trouble reading them. 2.x/3.x use this by default. OFS This keyword forces the disk to be formatted with the Original File System (OFS). OFS does not hold as much information as FFS. INTL=INTERNATIONAL This keyword corrects a case-sensitivity problem associated with international characters. For instance, some languages have letters that other languages don't. INTL ensures that the proper characters are displayed and stored. I don't recommend using this because people using pre-2.0 Amigas will not be able to read the disk. NOINTL=NONINTERNATIONAL This keyword will keep the international mode from being formatted onto the floppy. For information on the International mode see the INTL keyword description. NOINTL is Format's default. DIRCACHE This speeds up the opening of drawers, file requestors, and listing on that disk. It is OFF by default. A disk formatted with the DIRCACHE on cannot be read by pre-3.0 Amigas. So, only AGA machines can read disks formatted with DIRCACHE on. NODIRCACHE This keyword will keep the DIRCACH mode turned off. For more information on DIRCACHE see the DIRCACHE keyword. NODIRCACHE is the system default. EXAMPLES 1. To format a disk in Df1: and naming it My_Disk: FORMAT DRIVE df1: NAME My_Disk: @GET (2.x/3.x Only) (Internal Command) NAME GET - Shows the contents of a local environment variable. SYNOPSIS GET varname DESCRIPTION A named text string that is stored in an environment space is a local environment variable. It can only be accessed through the shell it was created in or from a shell that was spawned from the shell it was created in. OK... so what's the difference between GET and SETENV. Well, SETENV is stored in the RAM disk and is global to all system functions. GET resides in some private (reserved) memory that may only be accessed as described above. By placing a dollar sign before the name, you can swap the value of a local environment variable on the command line. In other words, if you type 'ECHO $Peter' you are creating the same local environment variable as GET Peter. KEYWORDS varname This is the name of the environment variable to get. There are many local environment variables which are already created by the 2.x/3.x operating systems. The proper use of these makes AmigaDOS a very flexible and powerful scripting language. The more important and useful of these variables are: Process The process number of the current Shell Echo Decides whether or not the Shell will repeat each of the commands as they are executed. If 'SET Echo on', then the commands are repeated and displayed. Anyother use of Echo will not allow any commands to be repeated. Turning Echo on helps you to debug any scripts that you are having problems with, since there is no other way to tell how they failed. With Echo on, you can tell which line in the script failed to work. RC The return code of the last command that was executed. You can manipulate this return code instead of using IF WARN or IF FAIL commands structures. This is a more efficient programming algorythm routine. Result2 The error number of why the last command failed. You can use the FAULT and/or WHY commands to try to figure out the exact nature of the error. EXAMPLES 1. To print the contents of an environment variable named StupidMahedi: GET StupidMahedi @GetEnv(V1.3, 2.x, 3.x) NAME GetEnv - display value of environment variable. SYNOPSIS GetEnv Name DESCRIPTION GetEnv displays the values of Environment variables. These variables are accessible to all tasks (unlike GET which is only accessible to the environment which created it). GetEnv searches both the older Environment variables and the new ENV: handler if it exists. (Note that ENV: is currently just a directory in RAM:, it is not a true handler). GetEnv prints the contents of this file. KEYWORDS varname The name of the environmental variable to get. This is the name of the file that is found in the ENV: direrectory located in RAM:. Kickstart/Workbench 2.x/3.x Only: These are created during startup. They contain the version of your Kickstart and Workbench that is currently being used by your system. Editor 2.x/3.x Only: Some Workbench programs such as MORE are able to recognize the environmental variables. If you set this variable to the pathname of your favorite text editor, then MORE allows you to bring up the program to edit the current file by pressing Shift-E. SEE ALSO Set Get @IF(V1.3 in C:) (2.x/3.x Internal) NAME IF - Add intelligent branching to scripts. SYNOPSIS IF NOT WARN ERROR FAIL string1EQstring2 string1GTstring2 string1GEstring2 VAL EXISTS DESCRIPTION If the condition tested by IF evaluates to TRUE, then the commands immediately following the IF, up to the following ELSE or ENDIF, are executed. If the condition tested by IF evaluates to FALSE, it moves the execution of the file ahead to the command following the next ELSE command (if there is one), or to ENDIF, if there is no intervening ELSE. The ELSE command (if used) must show up between the IF and ENDIF statements. CONDITIONS Each of the following will evaluate to true or false: WARN This will be true if the return code value set by the last command is greater than or equal to 5. ERROR This will be true if the return code value set by the last command is greater than or equal to 10. FAIL This will be true if the return code value set by the last command is greater than or equal to 20. Note that you will have to use a Failat command to raise the default fail limit from 10 to above 20 if you wish to use this test. string1EQstring2 This takes two strings, and will be true if both arguments are the same (i.e., EQUAL). The default is a string comparison, but see VAL, below. The comparison is not case sensitive. The test can be reversed by using the NOT keyword with it. It can be a numberic comparison if you utilize the VAR keyword. Strings 1 & 2 are normally text, if there are spaces in the strings then quotes must be placed around it. Environmental variables may also substitute a string by using a dollar sign ($) directly before the the variable name (so, $Amount represents the variable Amount). string1GEstring2 Takes two arguments. This will be true if the first argument is Greater than or Equal to the second argument. This may be combined with NOT (see below) to perform a LT (less than) test. The default comparison is a string compare, use VAL to compare numbers. Strings 1 & 2 are normally text, if there are spaces in the strings then quotes must be placed around it. Environmental variables may also substitute a string by using a dollar sign ($) directly before the the variable name (so, $Amount represents the variable Amount). string1GTstring2 Takes two arguments. This will be true if the first argument is Greater than the second. This may be combined with NOT (see below) to construct a LE (less than or equal to) test. The default comparison is a string compare, but use VAL to compare numbers. Case sensitivity does not matter. Strings 1 & 2 are normally text, if there are spaces in the strings then quotes must be placed around it. Environmental variables may also substitute a string by using a dollar sign ($) directly before the the variable name (so, $Amount represents the variable Amount). EXISTS This takes one argument, which should be a device, file or directory. This will be TRUE if the device, file or directory exists. MODIFIERS The following options to IF modify the meaning of the above tests: NOT Inverts the sense of the test. This is always used in combination with another keyword. As an example, the line: "If NOT EQ" will be TRUE if the EQ is false. This modifier combines with any of the others. VAL This affects the type of compare done by the EQ GT and GE keywords. By default, the comparison is a string compare. However, if you specify this keyword, the comparison performed is numeric. If you don't use the VAL keyword then the string will be compared one numeral at a time from left to right. For instance the string 22 will be shown to be greater than 011 since the first character is 0 in the second string which is smaller than 2 in the first. OTHER 2.x/3.x contains this command is internal. The only other difference between the 1.3 & 2.x/3.x version is that the 2.x/3.x version can be executed directly from the command line, while the diskbased version cannot. EXAMPLE 1. If you are running Workbench 3.0, the CLI will say "An Execellent decsion. If you are running any other OS then you get a message saying "Why not?" IF EXISTS Workbench3.0 Echo "An excellent decision!" ELSE Echo "Why not?" ENDIF SEE ALSO Execute Assign @Info(V1.3, 2.x, 3.x in C:) NAME Info - report information about mounted file system(s). SYNOPSIS Info NAME DATES DESCRIPTION This command displays important and useful information about each disk unit. INFO displays what disk volumes are in use and the amount of strorage they have. INFO also will display the name of all the disks residing in any physical disk drive. This is helpful if you in helping you remember what volumes are mounted where. You also get a list of available volumes is also listed (those mounted and unmounted). The 3 1/2 inch disk has 880k of space available to them. After you format it under OFS (Old File System) you only have 837k left. If you use FFS (Fast File System) you have a full 879k to use. If you are fortunate enough to have a high density drive, then you can use 1759k of disk space. The entire disk format is stored in sectors. There are 1758 usable sectors on the Amiga disk. OFS's divide each sector into 488 bytes whereas FFS has a full 512 bytes per sector. High Density disks use 3518 bytes per sector. INFO will report the number of sectors already used on the disk and how many are available for use. RAM: is dynamic. That means, it will always be reported as 100% full (even if it is empty) and will expand as needed until it is full. INFO will also report if there are any 'soft' errors on your disk. So, what is a soft error? Well, it is a temporary error. For example, an error reading information from a disk. If the system cannot read the information off the disk, it will retry a couple times. If all reads fail then you have a hard error. If one of your reads is successful then the original read that failed is flagged as a soft error. It also reports whether or not disk disk is write protected. If it is listed as 'Read Only' then your write protection tab is set. If it is listed as 'Read/Write' then it can be written to as well as read. The RAM: disk cannot be protected from reading or writing, but the files you put in there can be protected from deletion with the use of the PROTECT command. KEYWORDS NAME This keyword lets you get the information of one particular device without getting all the info for everything else. EXAMPLES 1. To show the information regarding the disk volumes known to the filing system: INFO 2. To print out the information regarding the disk volumes known to the filing system: INFO > PRT: 3. To show only the information pertaining to df1: INFO df1: @Install(V1.3, 2.x, 3.x in C:) NAME Install - Do the magic which makes a disk bootable. SYNOPSIS Install Drive NOBOOT CHECK DESCRIPTION This command should be used on all formatted floppy disks that you might wish to startup the system with. INSTALL adds the minimum amount of information to make that disk bootable. If a blank disk is INSTALLed it will bring up the AmigaDOS prompt, but that's it. To invoke any AmigaDOS commands the entire path to that file must be included. If you boot with the INSTALLed disk, it becomes the Sys: directory. If you use INSTALL on a non-Amiga formatted disk, or one with a custom boot-block, you will probably destroy that disk. So, be careful how you use this command. The drive specified may be one of DF0:, DF1:, DF2: or DF3:. OPTIONS CHECK This option checks to see if a disk is bootable, and if standard bootblock code is installed on the disk. For use in script files, if the disk is bootable and contains standard bootblock code, the error code is set to zero, otherwise, the error code is set to WARN. NOBOOT This option removes any bootblock from a DOS disk, and may also be used to make a non-DOS diskette readable as a DOS diskette. This can be used to get rid of unwanted information (aka Virus's) that may be hanging out on your diskette. FFS The disk will usually be given the boot block associated with that particular file system (OFS- Old File System for 1.3 or FFS- Fast File System for 2.x/3.x). This will force your system to install an FFS disk in Workbenches under 2.1. After and including 2.1 you are unable to force an FFS disk on an OFS only system. SINGLE DISK DRIVE WARNING!!! If you're not careful with your this program you can ruin your Workbench disk. Here's how to INSTALL a disk on a single drive system. You will not be prompted to enter the disk after you type INSTALL. So, this makes using INSTALL on single disk systems very dangerous. Normally, your C: directory will be assigned to the Sys: disk in df0:. So, if you insert the Workbench disk in df0: then type INSTALL ?, you will then get a command template that looks like this: DRIVE/A. Now, eject your Workbench disk then put in the one you wish to install and then type DF0: after the template then return. Now, the disk you wanted to install will be installed. EXAMPLES 1. To install a boot file on the disk in df2: INSTALL DRIVE df2: @IPREFS (ONLY in 2.x/3.x) (located in C: directory) NAME IPREFS - Managages the Preferences scheme in 2.x/3.x. SYNOPSIS IPREFS [QUIT] DESCRIPTION This command will read all the preference settings in the ENV:Sys directory and puts those settings into effect. IPREFS hangs out in memory and looks out for changes made to the preference settings. For IPREFS updating functions to work you must have all the windows of any process running closed that have opened up on the Workbench. You willknow if you have something open when you try to reset a Preference setting and get a message saying: 'Intuition is attempting to reset the Workbench screen. Please close all windows except drawers.' If you get this during bootup then you probably entered a command in the startup-sequence before IPREFS was run. This is a good reason why you should not alter your startup-sequence and make any extra programs run from your user-startup script. But, if you absolutly must enter a command before IPREFS, then run its output to NIL:. So, to run 'NeatProgram Keywords Arguments' before IPREFS, then you should enter it as 'NeatProgram >NIL: Keywords Arguments'. KEYWORDS QUIT Under 2.x only: This lets you quit IPREFS while keeping all the Prefrences intact. This keeps anything from changing the preferences as they are updated. This was removed under 3.x. NOTE: IPREFS is started during system startup. If you try to run it again you will get an error message saying that you already have it runnig and that you can't run it again. @Join(V1.3, 2.x, 3.x in C:) NAME Join - Combines (joins) many files into one larger file. SYNOPSIS Join name1 name2.... AS or TO destname DESCRIPTION This program combines several files into one larger file, which may also be a device such as a printer or modem. It accepts wildcards as its arguments. Wildcards are only supported under 2.x/3.x. 1.3 MUST have more than one name. This command will alphabetize the wildcarded filenames before using them. If you specify only one name, then a simple Copy will result. Any number of files may be specified in the command line, and each one may be a wildcard specification. KEYWORDS name1 name2... These are the files you will combine. Under 1.3 you must place at least two names here, with a space between each name (up to 15). AS or TO This is the name of the new file into which the contents of the other files are placed. This can be a new file or an old file, but it can't be any of the files which precede the AS or TO keyword. ADDITIONAL CONSIDERATIONS You may prefer to use TYPE for joining files rath than JOIN. JOIN is included for backward's compatibility with batch scripts. The one advantage of Join is that it runs a bit faster than TYPE concatenating large files. EXAMPLE 1. To combine the three files File1 File2 and File3 into one large file named FILES1-3. Note that the original files are unharmed. Join File1 File2 File3 AS FILES1-3 @Lab(V1.3 in C:) (2.x, 3.x in C:) NAME Lab - Define a label for Skip. SYNOPSIS Lab label_name DESCRIPTION Lab is used to define a label for use with skip. Lab by itself defines a null label. Note that if an EndSkip is encountered by Skip before the Label Skip is searching for is found, the search will be aborted at that point. EXAMPLE 1. In this example, only "But this will" will display on the CLI. Just type this script out and run it to see exactly how it works: Skip DODAH Echo "This will not display" Lab DODAH Echo "But this will" SEE ALSO Skip EndSkip CAUTION With the V1.3 version of SKIP, you should NOT indent a LAB statement or that label will not be found. @List(V1.3, 2.x, 3.x in C:) NAME List - List contents of a directory. SYNOPSIS List listname Dir P=PAT/k KEYS/s DATES/s NODATES/s SUB/k SINCE/k SORT/s TO/k UPTO/k QUICK/s BLOCK=BLOCKS/s NOHEAD/s FILES/s DIRS/s LFORMAT/k DESCRIPTION List displays the contents of a given directory. By contents, we mean the names of the subordinate files and directories, not the file data. Typing the List command by itself with no parameters generates a listing of the current directory. It also lists any comments attached by a FILENOTE command. THE LISTING DISPLAY List displays your files and directories one per line, with all the protection flags currently turned on right next to the filename. The fields which may appear in a Listed file are name [KEY] size/type protection date time :comment Methods are provided for getting a selective listing of files, as well as suppressing/adding most of the above display elements. A description of each one of the above elements is given below: Name The name of the file or directory. This can be a device or volume name. AmigaDOS wildcards are supported 100%. The inclusion of wildcards eliminates the need for the P (or PAT) keyword. PAT is retained to keep compatiblility with older versions of AmigaDOS. KEY This is the actual block number of the file or directory block header. This is not displayed by default, you must use the KEYS switch to generate this element of the listing. size/type This element gives the size of the file in bytes, or the string "empty" if the file is empty. If this is a directory and not a file, then the directory indicator ("Dir") will appear here. protection The protection bits of the current file, in the order hsparwed. If any of these is disabled, a dash (-) will appear in its place. The protection bits stand for "hidden, script, pure, archived, read, write, execute and delete", respectively. date time The date and time of the last modification to the file or directory. The format of the date display is determined by the value of the environment variable dateformat. These elements of the listing appear by default, but may be selectively added or subtracted by using the DATES or NODATES keywords. comment The comment as set by Filenote. If no comment exists, this field will not be displayed. Note that it is displayed on a line by itself, preceded by a colon. SELECTIVE LISTING OF FILES The methods described in this section allow you to list a portion of the files and directories on your disks. Ways exist to generate a list of files that conform to a certain pattern, or that were created/modified before or after a certain date. You may also combine these options, for example, you may get a list of all files which end in .c and were created or modified since a certain date. These options are described below: Dir List this directory instead of the current directory. This parameter may be a filename, in which case the single file is shown. You may also use any legal AmigaDos pattern in this position, in which case the files and directories listed will be those which match the pattern, if any. (This feature was added to the BCPL List in the V1.3 enhancer.) PAT List only files and directories which match the pattern. You must specify the keyword PAT or its abbreviation P. This is no longer truly necessary with the expanded capabilities of AmigaDOS wildcards, since it is usually more convenient to simply include the pattern in the directory specification as described above. It is included for BCPL compatibility. SUB In this option the SUB keyword must come before the string. If spaces are in the string, it must be enclosed in quotes. With the inclusion of AmigaDOS wildcards, this keyword is really not needed. It searches for an occurence of the substring anywhere within the directory name or filename. Think of this as a short form of "List PAT *substring*" or a long form of "List *substring*". List will reject any attempts to combine the use of PAT and S. Wildcards in the initial DIR argument are matched and then checked again to match against the substring. SINCE While the pattern matching options above filter files and directories on the basis of their names, this option, and the following UPTO option, filter out files based on their last modification date. SINCE displays only files which have been created or modified on or later than the specified date. All older files are not displayed. You may specify the date in the currently defined dateformat (see Environment Variables) or you may use a word such as SUNDAY, TODAY, YESTERDAY, etc. UPTO The inverse of SINCE, this option displays only files and directories which have been modified or created on or before the specified date. Files younger than this date are not displayed. See SINCE for a description of the date format list expects. FILES Display only files, and not the directories. DIRS Display only directories, and not the files. CONTROLLING THE DISPLAY The options below allow you to alter the format of the display listing, or to send it to another file or output display device (that's usually a printer). TO You can specify a file or a device you wish the listing to be sent to using this keyword. If not specified, the default of the current screen will be used. If the file already exists then the old file will be replaced (and gone forever) while being replaced with this new file. If the protection bit is set on the old file LIST will not work. It is very useful to LIST TO prt: to get a hard copy of your disk listing. DATES Forces the date and time of creation to be displayed in the current dateformat. This keyword does not have to be used unless you are using the QUICK or NODATES keywords. NODATES Will not display time and date information, only the filename, size, protection and comment fields will be displayed. Using DATES with this will force the creation dates and times to display. QUICK Displays only the filename field, one filename per line, with no trailing spaces. You can LIST just the files or direcotries by using the FILES or DIR options. You can combine this with other options such as DATES and KEYS to selectively enable these fields. Under 2.x/3.x KEYS no longer works with this keyword. KEYS Displays the block number of each file header or directory header. All files are assigned using block numbers. This is how AmigaDOS keeps track of your files. Each file has a unique block number assigned to it. This is its address on the disk. The block number appears to the left of the file length. SORT Sorts the file and directory names into ascending alphabetical order. Case is disregarded. Note that this is an option available only with the ARP list. Sorts by DATE if you include the DATES keyword. BLOCK=BLOCKS Displays filesizes in blocks, rather than bytes. NOHEAD Suppresses the default "Directory..." header and the "x files -x directories -x blocks used" footer display. LFORMAT LFORMAT can be used to control the output of list, and especially to generate command lines to be fed to the shell. LFORMAT can is most useful when you want to generate a script file. To send the LIST output to a script file, you can either redirect LIST's output using the ">" or "TO" keywords. LFORMAT takes a string as an argument which can be any ascii string. The LFORMAT substring can be used multiple times. This allows you to use the listing name more than once per line. The second time you use the string the first relative path will be replaced by %S, and the path of the second argument will be used (BTW, a relative path is merely the list of directories you must traverse to get from the specified directory to the current one.) If you use three substrings, then the first will be replaced by the relative path, while the second and third will be the file or subdirectory names. If you use it four times, the first and third will be the relative paths, and the second and fourth will be the subdirectory or file names. To include the output of List in this string, you can use the "%S" sequence under 1.3 or 2.x/3.x as follows: "%S" Filename "%S%S" Pathname/Filename "%S%S%S" Pathname/FilenamePathname "%S%S%S%S" Pathname/FilenamePathname/Filename The following information may be substituted for the string as output and is for 2.x/3.x Only: %A :Attributes (protection flags) %B :Size of file in blocks %C :Comments attached to the file %D :Date of file creation or last update %F :The complete absolute path (starting with the volume name) %K :Key block number %L :Length of the file in bytes %N :Name of the file %P :The relative path(starting at the current directory) %T :Time of creation or last update The following information may be substituted for the string as output and is for 2.1/3.x Only: %E :Extension only (the part of the filename after the last period) %M :Filename minus the extension (everything up to the last period) ALL :Lists the contents of all the subdirectories of the specified directory, as well as the directory itself. The %S's may be separated by spaces, other ascii text or nothing, as above. Here is an example of LFORMAT that will create a script to Type each file: List LFORMAT="Type %S%S" Of course, to use this, you must save it in a file using TO or one of the IO Redirection operators ('>', '>>'). If you are using 2.x/3.x, you can also pipe the output of List directly into the Execute command. ENVIRONMENT VARIABLES The List uses the same dateformat variable as used by the Date command, and in essentially the same way. If it is not defined, or if it has an illegal value, the default AmigaDOS display and input is used. Otherwise, the display and the input of dates is determined as follows: 0 AmigaDOS format DD-MMM-YY. 1 International format YY-MM-DD. 2 U.S. format MM-DD-YY. 3 Canada DD-MM-YY If you prefix the above numbers with a dash, then the display of names like TODAY, MONDAY, FUTURE, etc., will be disabled and the format string as defined above will be used exclusively. Note that this governs the format that List expects as input as well as the format List uses for display. EXAMPLES 1. To display all files in df1: ending with the characters "#?.c" which were modified later than TUESDAY at 00:00 hours. List df1:#?.c SINCE WEDNESDAY 2. To output just the names and dates for items in the current directory beginning with the letters 'stuff' that were created or last updated on or before April 16, 1967. Sent the output out to a file called 'StuffOut' in the Ram:T directory. LIST stuff#? QUICK DATES UPTO 16-Nov-67 TO Ram:T/StuffOut 3. To list the information about the contents of the current CLI directory. LIST 4. To print the block number of all the files in the current directory. LIST KEYS to PRT: or LIST > PRT: KEYS 5. To display the information about the files in the directory art/adult whose names contain the string 'girls' LIST art/adult/#?girls#? (note: Information about both 'Really Ugly Girls' and PrettyGirls would be displayed) 6. To set the pure bit of every file in the stuff: directory. LIST >RAM:ThisFile stuff:#? LFORMAT "protect %S +p" (now you have a file called Ram:ThisFile which contains the commands to set the PROTECT bit on all the files in the stuff: directory. Now, just EXECUTE RAM:ThisFile @LoadLib(V1.3 only) NAME LoadLib -- Explicitly load an Amiga library. SYNOPSIS LoadLib dev:dir/library-name DESCRIPTION THIS COMMAND IS NOT NEEDED BY 2.x/3.x. UNDER 1.3 ONLY: This is a new command which is occasionally very useful. If you should happen to boot from a disk that does not have arp.library in its libs directory you will not be able to use the ARP commands directly. This is an unusual situation, but it can happen. LoadLib presents the solution to this problem by allowing you to load the library directly from whatever directory you want. After a successful LoadLib of arp.library, you may use any ARP command you like. Note that you are not confined to loading arp.library, any diskloadable library may be brought into memory in this way, this can help a lot when your bootdisk gets too crowded. EXAMPLE 1. To boot from a disk without arp.library on it, and then insert your boot disk in drive 1, then type: LoadLib df1:libs/arp.library This will allow you to execute any ARP command. Note that LoadLib cannot use arp.library, and therefore it is missing some features, such as the advanced argument parsing, that most ARP supplied commands have. OTHER This command was donated to ARP by William Hawes. The founder of AREXX.ø @LoadResource (3.1 only) NAME LoadResource - Locks and loads a resouce to memory. SYNOPSIS LoadResource [NAME] [LOCK] [UNLOCK] DESCRIPTION LoadResource is used to pre-load a certain resource (library, device etc.) to memory before it is actually used. This may be used to reduce loading time of these resources. But, this reduced loading time is not without a price. That resource you load will continue to take up memory until the next reboot or a "LoadResource UNLOCK" followed by a FlushLibs (either via WB menu if you loaded WB with -DEBUG option or via the command "avail flush"). KEYWORDS NAME Name of the resource to load. LOCK Loads the resource from the disk and lock it in memory so it can't be expunged by a FlushLibs-Call. UNLOCK Search the given resource in memory and unlock it, it may then be expunged. EXAMPLES 1. To load the ReqTool.library from the libs: directory and protect it against FlushLibs-Calls. LoadResource ReqTools.library LOCK @LoadWB (V1.3, 2.X, 3.X in C:) NAME LoadWb -- To start the the WorkBench. SYNOPSIS 1.x: LoadWB DELAY -DEBUG 2.x/3.X: LoadWB DELAY -DEBUG CLEANUP NEWPATH DESCRIPTION Normally it is found in your statup-sequence so that your Workbench will be loaded when you start your Amiga. The Workbench will set and keep track of all search paths in effect as well as set the paths for each CLI or Shell started from a Workbench icon. Under 1.x the Workbench will reinitialize whenever you issue the LoadWB command. Under 2.x/3.x the Workbench is reinit- ialized after selecting 'Update All' from the Workbench menu. If you run LoadWB after it was already loaded under 2.x/3.x then you will get an error message saying that the Workbench is already loaded. KEYWORDS DELAY This makes a three second pause before the program is loaded. This lets all the disk activity to stop before going onto the next program in your startup-sequence to start. If there is not a pause, then both commands will try to access the floppy disk, this causes your floppy drive to make a thrashing noise and slows down you disk access tremendously. -DEBUG This adds a brand new menu item to your Workbench bar which is not normally displayed. There are two items on this menu. Debug (called ROMWack on 2.x/3.x) and Flushlibs. Debug (ROMWack) loads the ROMWACK debugger. This is a developer's tool which communicates to your Amiga via a 9600-baud terminal connection to the serial port. If this terminal is not connected, your Amiga will appear to lock up, since nothing will work until the remote terminal sends commands. Flushlibs lets the Workbench flush out all the libraries from memory that are not in use. This frees up a good deal of resources. This is useful for the programmer to check if his program exited cleanly and freed all memory that they allocated. 1.x ONLY: DELAY or -DEBUG may be used, but not at the same time. CLEANUP 2.x/3.x Only: This performs a 'CleanUp' of the Workbench window, making all your icons all neat and orderly. This may also be done via the Window/CleanUp while having the Workbench screen activated. NEWPATH 2.x/3.x Only: This lets you change the path that the Workbench uses. The Workbench usually remembers the CLI or Shell path that issued the LoadWB command. This path is automatically assigned to any Shell or CLI started from an icon. This path can be changed by using the NEWPATH keyword. The Workbench will then use the path associated with the Shell window from which the command was issued. EXAMPLES 1. Load the Workbench and close the CLI: LOADWB DELAY ENDCLI >NIL: 2. Load the Workbench with the DEBUG menu activated: LOADWB -DEBUG 3. Add the SYS:File directory to the path that the Workbench assigns to new Shell windows opened from icon: PATH SYS:File ADD LOADWB NEWPATH @LOCK (1.X, 2.X, 3.X located in C:) NAME LOCK - Enables or disables the write protection of a harddrive partition formatted under the Fast File System (FFS). SYNOPSIS LOCK drive ON/OFF PASSWORD DESCRIPTION 1.x only lets you enable or disable the write protection of a FFS. 2.x/3.x it also enables or disables the write protection of every kind of disk including floppies. The drive is unlocked only when another LOCK command is sent or reboot the computer. KEYWORDS DRIVE The name of the disk or partition. For 1.x, it can only be a hard drive formatted with the FFS. 2.x/3.x lets you LOCK floppy disks too. LOCK works a little differently on floppies than other commands. Normally, when a command is set onto a floppy drive (eg. df0:) it will only effect that particular disk. But, with LOCK, it effects any and every disk inserted into the drive. ON/OFF This keyword lets you protect the disk (LOCK ON) or write enable (LOCK OFF). The default is for the disk to be write enabled. PASSWORD Under 1.2, this password had to be four characters long. On Operating Systems 1.3 and above it can be of any length.The password is considered to be a text string. Therefor, if there are spaces in it, it must be enclosed in quotes. If a a password was included in the LOCK ON command, the same password keyword must be used in the LOCK OFF command for the disk to be write enabled. EXAMPLES 1.To protect harddrive partition Dh1: with a password of saturn: LOCK DH1: ON saturn 2. To turn off the same: LOCK DH1: OFF saturn or LOCK DH1: saturn @MAGTAPE (2.x/3.x Only) (Located in C:) NAME MAGTAPE [DEVICE devicename] [UNIT unitname] [RET or RETENSION] [REW or REWIND] [SKIP numfiles] SYNOPSIS MAGTAPE was added in 2.x to specifically control the A3070 tape backup unit. Computer tape drives are sequential. In other words, All computer tape drives, like video or audio tapes, must be manually "fast forward" or "rewind" to get to a particular file. Random-access devices such as floppy drives, harddrives, CDRoms, etc directly acess the information. KEYWORDS DEVICE devicename The devicename of unit to manipulate. UNIT unitname By default, MAGTAPE accesses SCSI unit four and utilizes the Commodore scsi.device. This is used because it is the factory defaults of the A3070. To change the SCSI unit number of the tape drive, or use a controlling device other than the scsi.device, you must specify both the device name of the SCSI controller (eg gvpscsi.device) as well as the unit number of the tape drive using both the DEVICE and UNIT keywords. There are usually dip switches in your unit that can be changed to correspond to any unit number you like. If you are unsure of the SCSI device driver your unit uses, then you should call the manufacturer. All SCSI drivers end in the extension: .device. RET or RETENSION This re-tensions the tape by fast-forwarding to the end then rewinding it. REW or REWIND Runs the tape to the beginning. SKIP numfiles Unit will run forward past a given number of files. The variable 'numfiles' tells how many files to skip. EXAMPLE 1. To rewind a scsi tapedrive attached to a GVP controller whose unit number is set to two: MAGTAPE DEVICE gvpscsi.device UNIT 2 REW @MakeDir(V1.3, 2.x, 3.x in C:) NAME MakeDir - Create any number of directories. SYNOPSIS MakeDir Dir/... DESCRIPTION MakeDir creates a new directory with the name you give. There is no limit to the number of directories you may create with this command. The directories will be created in the order in which you supply them. Note that you cannot duplicate directories at the same level of the directory tree, nor can you create a subdirectory until its parent directory has been created. MakeDir allows you to create multi-tiered filing systems on the same disk volume. To delete the directories, you will use the DELETE command. EXAMPLE 1. To make a directory named Jim: makedir Jim 2. To make a directory named Mailbag inside the Jim directory and the directories Jan and Feb which will reside in the Mailbag directory of Jim that you just created with the first part of the template. makedir Jim/Mailbag Jim/MailBag/Jan Jim/MailBag/Feb @MAKELINK (2.x and 3.x only) (located in C:) NAME MakeLink - Creates links which point to other files. SYNOPSIS MakeLink [FROM fromname] [TO toname] [HARD] [FORCE] DESCRIPTION When a program asks for a file, they will get the file linked to instead of that file itself. These links are handy whenever you have different programs who want to reference the same file in several different directories. Let's say you like to read your docs with ppmore. Well, many icons are configured to use More, Much More, Multiview, or any other text viewer. Well, to use your favorite reader (ppmore) you can make links that direct all other readers to access ppmore instead. The only problem with MakeLink is that you cannot make a link accross a volumes. Your link must reside on the same volume or partition. KEYWORDS FROM fromname The name of the link file to create. You only need to include the FROM keyword if you have the fromname and toname reversed. TO toname The name of the file which will be linked to. This must be on the same volume as fromname, and cannot be a directory name unless you use the FORCE option is used. HARD An optional keyword is used to indicate that the link and its target are on the same volume. A soft link is when the link is on a different volume. This is currently not supported. FORCE This is to create a directory link. This is where the link file will look for a particular directory instead of file. This is certain to cause confusion within your file system, especially if the target directory contains linked files. It will also cause havoc if you create a link to the parent directory of a target of another link. Even though MakeLink keeps you from making certain kinds of confusing links, you should be extra cautious when FORCING a link. EXAMPLES 1. To make a file run the program c:ppmore instead of C:more or C:muchmore MAKELINK c:ppmore c:more MAKELINK c:ppmore c:muchmore @Mount(V1.3, 2.x, 3.x in C:) NAME Mount - Make a new device known to AmigaDOS. SYNOPSIS 1.3: MOUNT Dev [FROM filename] 2.x/3.x: MOUNT Devs [FROM filename] DESCRIPTION When AmigaDOS starts up, only a few devices are known to it. You can add new devices with the Mount command, which are then used just like any standard device. The devices might be actual hardware units, or they might be logical devices, such as a SPEAK: device, or a PIPE: device, or a buffered serial device SER:, or even a non-buffered serial device such as AUX:. The Assign command allows you to view or remove these added devices, as well as the standard system devices. Before using this command to Mount the device, you will need to create an entry for it in a file (this is referred to as a MountList entry). The details of doing this vary from device to device, but there should be documentation accompanying each device you intend to add that describes exactly how to do this. Ordinarily, you will make this entry in the file called DEVS:Mountlist on your system, but the FROM keyword gives you the option to specify another file to obtain the mountlist entry from. The 1.3 disk has a sample Mountlist file in the Devs: directory. This will form a good example of how to structure any mountlists you write. The size of the device is determined by the Surface, LowCyl, HighCyl, and BlocksPerTrack entries. Merely multiply these values together to get the available storage. For example, if you had a device with a Surface=2 (double sided), LowCyl= 0 and HighCyl=39 (40 tracks per side: 39 - 0 + 1), and with a BlocksPerTrack=11 (11 sectors, each sector being 512 bytes) you would end up with a 440k drive (.5k X 2 X 11 X 40= 440K). For non-memory devices such as SPEAK:, AUX:, SER:, or PIPE: the list simply shows where to find the handler. A handler is a program similar to a device driver. The CLI commands FORMAT and DISKCOPY work with all similar mounted devices. For instance, you can FORMAT or DISKCOPY between two 3.5 inch drives and two 5.25 inch drives, but not DISKCOPY between a 5.25-inch drive to a 3.5-inch drive. If you try, you will get an "Object Not Of Required Type" message. The MOUNT command looks for this Mountlist in the DEVS: directory. This file is a text file that shares some of the characteristics of the C programming language. For instance, hexadecimal numbers must start with the characters 0x. Semicolons must seperate multiple descriptions on a line. Comments must appear like in all AmigaDOS script comments, that is beginning with /* and ending with */. The Mountlist must end with the pound sign (ei #). 2.X/3.X Only: There is a completely new and user-friendly way to handle devices! There is a new drawer in your Workbench called "DOSDrivers" inside your DEVS: directory. These files are different from old mountlists in three ways: 1) They don't end in a pound sign, 2) They contain only one device name per file, and 3) the device name of the file is not specified in the list. To mount the device, you simply drag it into the DOSDrivers drawer and it will be mounted automatically when the Workbench is loaded. If you don't want the mountlist loaded automatically at startup, then simply place the mountlist in the DOSDrivers drawer of the Storage directory. KEYWORDS FOUND IN THE MOUNT LIST Handler= The name of the device handler file. Found in you l or devs directory of your workbench. EHandler= 2.x/3.x only: The name of the environment handler file found in your prefs/env-arc directory of your workbench. FileSystem= The name of the file system file. Usually found in your Devs or l directory of your Workbench. Device= The name of your device driver file found in the Devs drawer of your workbench. You can also specify a path to another device location if you to locate the driver in another drawer. Priority= The task priority of the process; 5 is typical of handlers, 10 is typical of file systems. Unit= The unit number of the device (ei 0 for df0: and 1 for df1:). Flags= Flags setting for the OpenDevice call (usually 0). Surfaces= Number of write surfaces. BlocksPerTrack: The number of disk blocks (eg sectors) per track (eg cylinder). Reserved= The number of blocks used for the boot block; 2 is the standard here. PreAlloc= The number of blocks reserved at the end of a partition; used with a few IBM-style (yuk!) hard drives. This is usually 0. Interleave= This value controls the AmigaDOS interleave, not the physical hard drive interleave. LowCyl= Starting cylinder to use for this device. HighCyl= Ending cylinder for this device. Total number of cylinders= HighCyl - LowCyl +1. StackSize= The amount of working memory to allocate to the process. Buffers= Number of cache buffers to use with the device. BufMem Type= Type of memory to use for cache buffers. Values are as follows: 0 or 1 = Any 2 or 3 = CHIP 4 or 5 = FAST Mount= If this value is positive, MOUNT loads the handler or driver software as soon as the device is MOUNTed, rather than the first time the device is accessed. 2.1/3.x utilizes the word ACTIVE as a synonym for this keyword. MaxTransfer= The maximum number of blocks transfered at one time; used with the Fast File System only. Mask= Address mask that specifies the memory range that can be used for DMA transfers; used only with the Fast File System. GlobVec= If the handler is written in BCPL, it needs a global vecotr. A value of 0 sets up a private global vector; anything else indicates that the handler is written in C or assembly language, and no global vector is needed. If this keyword isn't used, the shared AmigaDOS global vector is used. Startup= A string passed to the handler, device, or file system on startup. This string is passed as a BPTR to a BSTR. BootPri= The boot priority of a bootable device, expressed as a number between -129 and 127. A value of -129 indicates that the device is not bootable, as is appropriate for use with the recoverable RAM disk if you don't want to boot from that device on reset. DosType= Indicates the format of the file system used. If the Fast File System is used, this value should be set to 0x444F5301 (DOS/1). Other types introduced in 2.1 include 0x444F5302 (DOS/2), an international version of the old file system that allows mixed-case accented characters in filenames, and 0x444F5303 (DOS/3), an international version of the Fast File System. Baud= Serial device speed (in bits per second). Control= Serial device control parameters- word length, parity, and stop bits (eg 8N1, 7E1). ForceLoad= A new 2.1 option. When this value is 0 (default), the system will check the resource list to see if the file system named in the entry has already been loaded. If it has, the system will use that one, instead of loading a new one. Under 1.3 you can only MOUNT one device at a time with one MOUNT command. The 2.x/3.x version of Mount allows you to mount any number of devices with one Mount command, which can speed up the startup-sequence somewhat. OPTIONS FROM This takes one argument, which should be a filename. This filename will be used to obtain the Mountlist entry for the device you are adding. If this keyword is not used, the file DEVS:Mountlist will be used instead. MOUNT KEYWORDS DEV The actual AmigaDOS device name, such as DF2:, DH0:, or SER:. This refers to either a hardware device like a disk drive or serial port, or a logical device such as a RAD or harddrive partition. The keyword must be the same as the label given in the Mountlist entry. The device mounted should also be available to the system. In 1.3 you can only specify one device per command. Under 2.x/3.x you can specify multiple devices with one command call. Wildcards may be used when specifying multiple devices. FROM Lets you specify a file other than DEVS:Mounlist as the place to look for the description of the device being MOUNTed. EXAMPLE 1. Assuming you have a mountlist for a device named FRANKIE: Mount FRANKIE: CAUTIONS Please note the following two differences between the V2.x/3.x Mount and the Commodore V1.3 Mount, which can cause problems in some cases if you are not aware of the differences. If you want to reboot from RAD: using the 2.x/3.x Mount, you must insert an explicit "BOOTPRI = 0" statement into the mountlist entry for RAD:, as compared with the Commodore Mount which automatically will reboot from RAD:. If you have a "MASK = nnnnn" statement in your mountlist, MAKE SURE THE MASK VALUE IS AN EVEN NUMBER. The 1.3 Mount automatically converts the mask value to an even value, but the 2.x/3.x Mount will pass through an odd value which can cause problems. You will probably only have a "MASK=nnnnnn" statement if you have memory that cannot be accessed by a DMA device, such as with a RONIN 68020 card. @NewCLI(V1.3 in C:) (v 2x/3x internal) NAME NewCLI - Start a new interactive CLI on the system display. SYNOPSIS 1.3: NewCLI [AUX: or CON:hpos/vpos/width/height/windowtitle] [From filename] [CLI] [STACK] 2.x/3.x: NewCLI [AUX: or CON:hpos/vpos/width/height/windowtitle/options] [From filename] DESCRIPTION This window support the same gadgets of a regular everyday Workbench window (that is a drag gadget, back/front gadget, sizing and under 2.x/3.x a zoom and close gadget). It can be started with this command as well as by double-clicking on the Workbench icon 'CLI' found in your Systems drawer. Once started, the CLI becomes the active window on the Workbench. It immediatly takes on current directory from which it was started from. You can open as many CLI windows as your memory allows under 2.x/3.x. 1.3 limits you to 20. Each window will operate completely seperatly from anyother and will be complete with its own environment. If you do not change the CLI attributes during CLI startup, then it will be named 'New CLI' under 1.3 and 'AmigaShellj' in 2.x/3.x. The task number of the CLI will also be shown. Each and every CLI will have its own unique task number, just as every application run on the Amiga will be assigned its own task number. It will be numbered according to how many programs are running at the time you open it. For instance, if you have absolutly NO other applications running it will be task number 1, if there are two other applications running it will be task number 3, etc. Unless you specify during the start of the CLI process, each CLI will open at the top left corner of the screen and extend 640 pixels accross and 100 pixels down the screen. So, as you open each new CLI, it will cover up the old one unless you manually drag it out of the way. The advantage of being able to run multiple CLIs on the Amiga is one of the many attributes that sets it apart from other operating systems. You can open as many CLIs as you could ever use, with each running its own application or holding information which you may need to reference. If you take a few minutes to master the CLI, you will be able to run rings around anything that an IBM compatible can spew out. KEYWORDS [AUX: or CON:hpos/vpos/width/height/windowtitle/options] [FROM filename] Using CON: lets you chose the size, postion, and the name of the new CLI window. (NEWCON: was added under 1.3 which has advanced functions which may replace CON:) If you want to change the size, postion, or name of the CLI, the CON: (or NEWCON:) keyword must be used. -hpos: The horizontal position of the top left corner of your CLI. It is defaulted to 0. -vpos: The verticle postion of the top left corner of your CLI. It is defaulted to 0. -width: -height: These two keywords have no defaults and must be included for the CON: keyword to work. The CLI must be at least 90x25 pixels, but has a maximum of 640x200 pixels. You can also use the sizing gadget on your CLI to change the window size at any time. -windowtitle: This one is completely optional. This lets you chose the name of the CLI as shown in the titlebar. If you don't enter a window title the title space will be blank. Even though you don't have to supply a name, you must include the last slash following the height keyword. -options: 2.x/3.x only. These options were added to make the CLI more flexible. You can add as many or as few options as you desire: AUTO: The CLI opens immediatly only when the program that started it requres it. CLOSE: This is on by default. This lets you add the Close gadget in the top left corner of the CLI. BACKDROP: This lets forces the CLI to open up behind all other windows and cannot be moved, resized, or changed in any way except through using the zoom gadget. NOBORDER: There are no visible lines surrounding the window. The zoom and size gadgets will still be there, but if you zoom the window to full size, the CLI will dominate your environment and the only way to make it smaller is by closing it. NODRAG: The window will not let you drag it. The position will remain in the same place always. NOSIZE: The zoom, close, and size gadgets will disappear when the CLI is started. There will only be a depth gadget. SCREENname: The CLI will open on a screen with the name you give it. For instance, if you use the 'SCREENveronica' option, the CLI will open up on the public screen named 'veronica'. If 'veronica' does not exist, then this option won't work. SIMPLE: Allows the text to fill up the CLI window when expanded. This lets you see more information than before. The default is on. SMART: When the CLI widow is expanded, this option does not allow the old information to be seen. It is the opposite of SIMPLE. WAIT: The CLI won't close when the program that created it is closed. To close the CLI using this option, you must select the close gadget or use the Ctrl-\ key combination. If you direct the output and input of a CLI to the AUX: device if you desire. By routing the commands through AUX: you are actually sending commands out the serial port. The AUX: CLI will not be able to cancel requestors and only allow you to run text-based programs. Sorry, no GUI here. Of course, you must mount the AUX: device before you can utilize this. [FROM filename] This lets you open a CLI with the specifications set in a script file located in your s directory. Normally, NewCLI uses the s:CLI-startup script. But, you can write any script and reference it with this keyword. Check out s:CLI-startup to get an idea how to set this up. EXAMPLES 1. To create a new CLI that uses the serial port for input and output: NEWCLI AUX: (remember: this only works if AUX: is mounted) 2. To create a 150x150 CLI in the upper left corner of your screen named 'Debox': NEWCLI CON://150/150/Debox 3. To create the default CLI (that is, with the upper left corner of a 200x100 window titled 'New CLI': NEWCLI @NewShell (V1.3 Alias created during Shell-startup) (2.x/3.x internal) NAME NewShell - Invoke a shell or CLI utilizing a NEWICON: console window. SYNOPSIS 1.3: NewShell [AUX: or NEWCON:hpos/vpos/width/height/windowtitle] [From filename] 2.x/3.x: NewShell [AUX: or NEWCON:hpos/vpos/width/height/windowtitle] [From filename] DESCRIPTION This opens an advanced CLI (called a SHELL) which includes aliases, resident commands, and has the current directory listed at the prompt instead of in the titlebar. NEWCON: also must be mounted before for NEWSHELL to work. This should also be in your startup-sequence. If NEWCON: is not mounted, then the CON: device will be used instead.The command used to mount it is: MOUNT NEWCON: 2.x/3.x ONLY: The enhanced CLI is now internal in your operating system, and using either NEWCLI or NEWSHELL to open a new Shell window. 1.x ONLY: Shell-Seg must be resident in order for this to work under pre-2.x version of AmigaDos. If it was not made resident, then a CLI will be opened instead of a SHELL. It should have been made resident in your startup-sequence with this command: RESIDENT CLI L:Shell-Seg SYSTEM pure KEYWORDS AUX: or NEWCON:hpos/vpos/width/height/windowtitle/options This lets you pick the position, size, title, and options for the new Shell window. The options keywords will work only under 2.x/3.x. The options are listed here: AUTO: The CLI opens immediatly only when the program that started it requres it. CLOSE: This is on by default. This lets you add the Close gadget in the top left corner of the CLI. BACKDROP: This lets forces the CLI to open up behind all other windows and cannot be moved, resized, or changed in any way except through using the zoom gadget. NOBORDER: There are no visible lines surrounding the window. The zoom and size gadgets will still be there, but if you zoom the window to full size, the CLI will dominate your environment and the only way to make it smaller is by closing it. NODRAG: The window will not let you drag it. The position will remain in the same place always. NOSIZE: The zoom, close, and size gadgets will disappear when the CLI is started. There will only be a depth gadget. SCREENname: The CLI will open on a screen with the name you give it. For instance, if you use the 'SCREENveronica' option, the CLI will open up on the public screen named 'veronica'. If 'veronica' does not exist, then this option won't work. SIMPLE: Allows the text to fill up the CLI window when expanded. This lets you see more information than before. The default is on. SMART: When the CLI widow is expanded, this option does not allow the old information to be seen. It is the opposite of SIMPLE. WAIT: The CLI won't close when the program that created it is closed. To close the CLI using this option, you must select the close gadget or use the Ctrl-\ key combination. FROM filename Lets you specify a script to be run when the Shell opens. If you don't put this script in your s: directory then the 'filename' keyword is used to tell NewSHELL to find it. The default startup file is the s:Shell-Startup. EXAMPLES 1. To create a 150x150 SHELL in the upper left corner of your screen named 'Debox': NEWSHELL NEWCON://150/150/Debox 2. To create the default CLI (that is, with the upper left corner of a 200x100 window titled 'My Shell': NEWSHELL "NEWCON:////My Shell" @Path(V1.3 in C:) (2.x/3.x internal) NAME Path - Set or display the CLI search path for executable files. SYNOPSIS 1.3: Path [SHOW] [ADD or RESET] Dir(S) [QUIET] 2.X/3.X: Path [SHOW] [ADD or RESET OR REMOVE] Dir(S) [QUIET] DESCRIPTION The Path command lets you add directories to the places AmigaDOS looks for executable programs. By default AmigaDOS looks in the current directory, and then in the C: logical device (set by using Assign). You can add directories to search between these two points by using Path. Note that you can use wildcards when specifying directories to search to Path. If a wildcard is specified, the first directory which matches the wildcard pattern will be added. Any number of directories can be added to the path with one command. This command may also be used to display the current search path. OPTIONS ADD This option allows you to add directories to the current path. Note that you do not need to use this keyword, if you simply type directories as arguments, this action is implied. The new directory will get searched for after the other user-specified directories, but before the C: directory. SHOW This displays the current path. The same behavior may be obtained by simply using Path without any arguments. RESET This will replace the old path with the new path you specify. If you do not specify any directories to search, the Path defaults to the current directory, and then to C:. It is not possible currently to remove these two directories from the path. If more than one directory is added, then each directory name is seperated by a space. QUIET This prohibits displaying requestors for disks which are not mounted when displaying the path with SHOW. If you use this switch, and the disks are not currently mounted (i.e., in a disk drive) then only the volume name will be displayed. REMOVE 2.x/3.x only: this lets you delete one or more directories from the search path. If more than one directory is named then they must be seperated by spaces. EXAMPLES 1) To add drives df1: and df2: to the searchpath: Path ADD df1: df2: 2) To reset the path to search drives one and two: Path RESET df1: df2: 3) To add the first directory found on DF1: that begins with the letter b. Path ADD DF1:b#? @Prompt(V1.3 in C:) (2.x/3.x internal) NAME Prompt - changes the prompt for the CLI or Shell. SYNOPSIS Prompt "Prompt" DESCRIPTION Prompt sets a new prompt for the current CLI. Prompt with no argument resets the CLI prompt to the default, which is just "> ". Shells differ in their interpretation of special characters for the prompt. For example, the Shell will accept the following characters in its prompt string: %S - expands to pathname of current directory %N - expands to current task number. %R -2.x/3.x Only: expands to the Return Code for the last program that was executed from that SHELL. The CLI default prompt is n>, with 'n' being the task number associated with the current task number of that shell. For instance, the if no other applications are running, and the shell is open, the prompt will be 1>. If there are two other tasks running, the prompt will be 3>. If used with a SHELL instead of the CLI, PROMPT can display the current directory as part of the command prompt. If you look at your s/Shell-startup script file, you will see how the PROMPT command changes the default string to the task number of the SHELL, followed by a period, then the current directory path, a right-angle-bracket, then a space. KEYWORDS "Prompt" The string that replaces the active CLI's prompt. If "Prompt" is left blank, then the prompt will be changed to >. You can designate up to 59 characters for your string. If there are any spaces, then you must enclose the entire string in quotation marks. You may also use ANSI escape sequences to change the prompt color, or italics. Here is a complete list of the ANSI escape characters: ESC-[1m Switches to BOLD characters. ESC-[2m Switches character color to color 3. ESC-[3m Switches Italics on. ESC-[4m Switches Underline on. ESC-[7m Switches Reverse video on. ESC-[8m Switches background color off. ESC-[0m Switches to normal characters. ESC-c Switches to normal characters and clears the screen. ** When using these ESC key combinations, don't type 'ESC', instead, press the 'Esc' key on your keyboard. You will then see a reverse video bracket as your printed character. After that reverse video character you can type in the rest of the Escape sequence. ** You may also use the keys "*e" (an asterix followed by the letter 'e'). This will have the same effect as using the ESC key. Actually, it is better because some editors (such as CEd, Ed, and others) uses the ESC key to enter the command mode. EXAMPLES 1) To change the current prompt to 'Amiga!:' PROMPT Amiga! 2) To change the current prompt to 'Mehedi Who?:' PROMPT "Mehedi Who?" 3) To change the current prompt to 'Amiga Task n Waiting' (where n is the current task number): PROMPT "Amiga Task %N Waiting " 4) To change the current prompt to show the task number and current directory in reverse text, seperated by angle brackets: PROMPT "[7m%N>>%S>[0m " 5) To show the date and time with each prompt (2.x/3.x only): PROMPT "'DATE*' > " This uses the apostrophe (back tick) character to output the result of the DATE command to the prompt string. The asterisk character is used as an escape to indicate that the DATE command is to be executed each time the prompt string is printed. If this escape character is not used, the prompt string will always print the same time and date. (see backtick for more information on this command). See Also: Asterix @Protect(V1.3, 2.x/3.x in C:) NAME Protect - To set file(s) protection status. SYNOPSIS 1.3: Protect [File] name [Flags] [s] [p] [a] [r] [w] [e] [d] [ADD or -] [SUB or -] 2.x/3.x: Protect [File] name [Flags] [s] [p] [a] [r] [w] [e] [d] [ADD or -] [SUB or -] [ALL] [QUIET] DESCRIPTION Protect is used to set the protection level of a file or files. You may set the protection level for multiple files or directories at a time using wildcards. The flags that you may set are: h - hidden file is protected from listing (not supported) a - archive file has been archived (set by backup programs) p - pure file may be made resident without fear s - script file is a script (supported by some shells) r - read file is readable (supported by some commands) w - write file is writable (supported by some commands) e - execute file is executable (supported by some shells) d - delete file is deletable (system supported) Setting or adding a flag allows the associated action. Clearing or subtracting the flag disallows that action. You can specify a completely new set of flags for a file by simply listing the flags you want to be turned on for that file (or files). If you omit a flag, that flag will be cleared. Protect with no flags disallows all protections for the file(s) in question. You can also add or subtract flags to the current set using the ADD and SUB keywords (see below) or by preceding the flags with a '+' character or a '-' character, respectively. To view the protection bits for a specific filename, you use the List command. If a flag character is shown in the LIST display then it is on. If the letter is not displayed, that bit is off. In that case, there will be a dash (-) instead of a letter. The only setting which AmigaDOS acts upon are the read and write (r and w) bits. OPTIONS FLAGS (s p a r w e d) These are the protection flags which can be turned on/off with PROTECT. You don't have to include the FLAGS keyword, just the letters. If a FLAG is turned on then the operation associated with the flag may be carried out. If no flags are specified then all the flags are turned off. NOTE: If the 'D' flag is set then the COPY command will not work on that file. This is because the COPY command actually deletes the old file and replaces it with the new one. ADD or [+] The flags given are to be added to the current set for the file(s) in question. Other than adding these flags, the original protection bits of the file(s) will be left unchanged. Another way to obtain this behavior is to use a '+' character as the first character of the flags you wish to add. SUB or [-] The flags given are to be removed from the current set for the file(s) in question. Other than subtracting these flags, the original protection bits of the file(s) will not affected. Another way to obtain this behavior is use a '-' character as the first character of the flags you wish to subtract. ALL 2.x/3.x only: Recursively descend directories, performing the desired operation on each file and directory for that branch of the directory tree. FILES When using wildcards or the ALL keyword, Protect will change the protection bits for both files and directories. Using this keyword will cause protect to only change the protection bits for Files. 1.3 does not allow you to use wildcards. DIRS Like FILES, but changes the protection bits only for directories. QUIET [Q] This causes Protect to do its work silently, without displaying the files and/or directories it is operating on. EXAMPLE 1. To keep all files ending in .c from being deleted by subtracting the d flag for these files. Protect #?.c -d 2. To turn on the script and execute bits. These bits allow some shells to execute the scripts as though they were programs. Protect #? +se @Quit(V1.3 on C:) (2.x/3.x internal) NAME Quit - Exit from a batch file with the given error code. SYNOPSIS Quit returncode DESCRIPTION Quit forces an exit from the currently executing batch file. If given a numeric argument, it will return this as it's own exit status. KEYWORDS returncode This is the return code reported when the script is quited. If it is above the FAILAT level, you will get the message: QUIT failed returncode [returncode] The number specified is substitued for [returncode]. If it is below the FAILAT level, or this level is not specified, then no message is displayed on QUITing the script. EXAMPLES To exit a command without an error code: QUIT To exit a command with an error code 12: QUIT 12 *Note that 2.x/3.x contains this command as a builtin. @Read(V1.3 only) NAME Read - Read input and parse. SYNOPSIS Read Variables/... DESCRIPTION Read accepts input from its standard input. It takes as arguments a list of one or more environment variables into which it will place the parsed input. Read chops the input up on whitespace and/or double quotes, depending on the user's input, placing the first argument in the first environment variable you supply, the second in the second and so on. The final environment variable supplied gets the rest of the input string. If only one variable is supplied, it gets all the input. Read may be used to good effect in pipelines. EXAMPLE 1. First will contain 'S', while last will contain 'D B'. Read First Last S D B 2. First will contain '"S D B"' while last will be empty. Read First Last "S D B" @Relabel(V1.3, 2.x, 3.x in C:) NAME Relabel - Change the name of a disk. SYNOPSIS Relabel [Drive] drive [Name] name DESCRIPTION You use Relabel to rename a disk. Volume names are normally given during the FORMAT or DISCOPY. Do not confuse the volume name with the device name (which is df0 or dh0:). KEYWORDS DRIVE drivename This is the device name which you want to change. There is no default drive. So, if you wish to relabel any other drive, then be sure to enter the drive or else it won't work. NAME name This is the name you are going to give. You can use up to 30 characters. Be sure to use quotes if there are any spaces in the name. EXAMPLE 1. To change the name of the disk in df0: to MyWorkbench: Relabel DF0: "MyWorkbench" @RemRad (v1.3, 2.x, 3.x in C:) NAME RemRad - Remove the recoverable RAM disk device. SYNOPSIS REMRAD unitnum [FORCE] DESCRIPTION If you wish to free up some ram: taken up by a RAD: disk then use this command. By issuing this command you are freeing up the memory taken up by the RAD: device. After you issue this command, then reboot the system the RAD: is removed entirely. KEYWORDS unitnum 2.x/3.x lets you make many RAD: devices with different names by simply changing your mountlist in 2.0x or your datatype icons under 2.1/3.x. You can selectively remove just one of these with this keyword. FORCE This will force AmigaDOS to remove the RAD: device despite whatever else is going on in the system. For instance, if there is an assign attached to the RAD: then it will be impossible to delete unless you remove the assign or use the force KEYWORD. EXAMPLE 1. To remove RAD: that currently has an assign to it: REMRAD FORCE @Rename(V1.3, 2.x, 3.x in C:) NAME Rename - To rename or move files and directories. SYNOPSIS 1.3: Rename [From] fromname [TO or AS] toname 2.x/3.x: Rename [From] fromname [TO or AS] toname [QUIET] DESCRIPTION Rename is a complete replacement of Commodore's old Move command. Originally, Rename was a limited form of the more advanced Move command. The difference between the two was that Move will also Rename files across devices, while Rename cannot. Move also had a few additional options which are quite pleasant. It was recommended that you delete this file and use Move, defining an Alias if you have scripts which use Rename. But, times have changed and Rename has become a much more versitile program. Well, Commodore got rid of Move because Rename is 'better'. Well, despite its advances, it still cannot Rename accross devices or volumes. You are only able to move files from one directory to the next on the same disk. You are also able to use it to reorganize the entire directory structure of your disk. KEYWORDS FROM fromname This is the file to rename. If this is the first statement you don't need to use the keyword. 2.x/3.x lets you utilize any wildcard pattern supported by AmigaDOS. TO (AS) toname These commands are optional. This is the name of the file you are renaming to. You can use either the TO or the AS keyword to get the same effect. If the file you are RENAMing to already exists then RENAME will fail. QUIET 2.x/3.x only: Keeps the progress report from being shown on the screen while renames are being made. EXAMPLES: 1. To move a file "SomeThing" to a directory named "InHere/Now" without changing the file name: RENAME Something InHere/Now/Something or RENAME Something InHere/Now (note: This will also work with renaming entire directories as well.) 2. To Rename a file called BigBlue to Commodore: RENAME BigBlue Commodore 3. To move a file "Work Docs" to a directory called "Textra/Work" without changing the name: RENAME "Work Docs" ":Textra/Work/Work Docs" @REQUESTCHOICE (3.x only, located in C:) NAME Requestchoice - Adds a decision requestor to an AmigaDOS script file or AREXX script. SYNOPSIS Requestchoice titlebox bodytext buttontext(s) [PUBSCREEN screenname] DESCRIPTION When the requestor window opens and lets the user chose from one or more buttons. When a button is chosen, the number of that button is returned. KEYWORDS titletext The text you want in the title bar of the window. It is a good idea to have this title bar mention where the window was launched from so that the user won't get confused. You must always include titletext. If you don't want to have text in your titlebar, then use a blank text string (""). bodytext This is the main body text of the window. (for example "Do you wish to continue?"). This string is also required. buttontext(s) This assigns the words to the button choices. You must have atleast one button. Extra buttons may be added by just tacking on extra text screens. Every button is assigned a number, when a button is chosen b the user, the command returns this number to the console. If there are text for many buttons, they will appear from left to right. The button on the leftmost is number 1, the next is number 2, and so on. The only exception is the last button entered which is assigned the number of zero. This is reserved for the "Cancel", "No", or "Quit" optons. [PUBSCREEN screenname] This lets you place your requestor on any public screen by adding this keyword with the name of the screen. EXAMPLES 1. Print the number in the shell window the user selects from the requestor: SET Number 'REQUESTCHOICE " " "Pick your number" 1 2 3 4 5 0' ECHO "You chose the number $Number" 2. Ask the user to continue or quit: SET Continue 'REQUESTCHOICE Script "Continue???" Yes No' IF VAL $Continue EQ 0 ECHO "You're outta here!" QUIT ENDIF ECHO "Next command??" @REQUESTFILE (3.x only) (Location in C:) NAME Requestfile - To allow the use of the standard ASL file requestor in an AmigaDos or AREXX script. The ASL requestor is the interactive window that displays a list of filenames and directories and lets the user chose one. SYNOPSIS REQUESTFILE [DRAWER DIR] [FILE filename] [PATTERN pat] [TITLE titletext] [POSITIVE postext] [NEGATIVE negtext] [ACCEPTPATTERN pat] [REJECTPATTERN pat] [SAVEMODE] [DRAWERSONLY] [MULTISELECT] [NOICONS] [PUBSCREEN screenname] DESCRIPTION After the user selects the file, the name of the file chosen is returned, surrounded by double quotes. If multiple files are selected, each file is printed to the console seperated by spaces and exits the file requestor with a return code of zero. If 'CANCEL' or the close gadget is chosen, the program ends with a return code of 5. The return code 5 can be detected if the "IF WARN" statement is used. KEYWORDS Even though there seems to be many of these, all of them are optional. If you issue the REQUESTFILE command without any keywords, a standard ASL requestor will open up that any user can figure out. DRAWER dir The first directory listing will be the specified 'dir', and this path will appear in the drawer gadget of the file requestor. FILE filename The 'filename' will be the selected default file. If this file is not in the root directory, you must use the DRAWER keyword to specify its directory. PATTERN pat This keyword causes only the files which match that pattern you specify to show up. The user can, however, enter any file he desires by simply entering the filename or by changing the pattern. If you wish the user to not be allowed to change the file pattern then use the ACCEPTPATTERN keyword instead. TITLE titletext This allows you to enter the text string that will appear in the title bar of the window. This should be limited to 30 characters because anything text over 30 letters will be cut off by the edge of the requestor. It is also a good idea for this text to hint the user on what file he should select. POSITIVE postext This lets you change the button text on the leftmost button. The function of that button always allows the user to select that file. The default is labeled 'OK'. For instance, let's say you wanted to load that file, you could name that button 'Load'. Or, if you wanted to delete that file you could name that button 'Delete'. NEGATIVE negtext This lets you change the text of the rightmost button, which is defaultly named 'CANCEL'. You could change the name to something more meaningful, such as 'Skip' or 'Abort'. ACCEPTPATTERN pat Allows you to limit the file display to those filenames which match the pattern you specify. This keyword does not give the user a chance to change the pattern. If you want to leave the user that flexibility, you should use the PATTERN keyword instead. For instance, if you specify 'pat' as "#?.info", the user will only be allowed to enter or select icons and only icons will be displayed. REJECTPATTERN pat This lets you exluce from the display all the files that match the pattern you specify. This is the opposite of ACCEPTPATTERN. Like ACCEPTPATTERN, there is no way for the user to change the pattern. For instance, if 'pat' is "#?.info" then there is absolutly no chance for the user to select an icon or for one to be displayed. SAVEMODE This is where the user is presented with a display window that is black with grey letters instead of the gray and black letters, and the multiselect option is disabled. DRAWERSONLY Will not show any filenames, only the directory names. MULTISELECT Lets the user select multiple files by holding down the shift key and clicking on as many files as they want. These files will be outputed to the console device, seperated by spaces, when the 'OK' button is selected. NOICONS This will keep the icon files from showing up in the file reqestor. This can also be accomplished by using the "REJECTPATTERN #?.info" keyword statement. PUBSCREEN screenname This is where you can chose which screen you want the requestor to show up on. EXAMPLES: 1. To have the user select a directory within a script, and to store that directory in the local environment variable dirname: UNSET dirname SET dirname 'REQUESTFILE DRAWERSONLY' IF "$dirname" EQ "*$dirname" ECHO "You didn't choose a directory name" ELSE ECHO "The directory you chose was $dirname" ENDIF UNSET dirname The Cancel button is tested for by checking for the "$dirname" (which is replaced by the contents of the environment variable) is equal to the literal string "$dirname". The asterisk means that the IF command will interpret the dollar sign as a dollar sign, not as the contents of an environment variable. You could not use the IF WARN test because you only get the return code from the SET command, not the REQUESTFILE command this it contains. @RESIDENT (1.3 in C:) (2.x/3.x Internal) NAME Resident - Loads a program into memory and keeps it resident there where it will be executed without having to be loaded from disk each time. SYNOPSIS 1.3: RESIDENT name filename [REMOVE] [ADD] [REPLACE] [PURE] [SYSTEM] 2.x/3.x: RESIDENT name filename [REMOVE] [ADD] [REPLACE] [PURE or FORCE] [SYSTEM] DESCRIPTION Resident saves time by loading the command into memory thereby allowing several Shell windows to execute the same program code simultaneously, without having to load another copy of the program for each shell. A command may only be made resident from 1.3 and above. Also, only program files that have their PURE bit set. Also resident commands must be able to be run many times in a row without being reloaded or reinitialized. It should also be able to be executed from different Shells simultaneously without conflict. How do you know if the file is able to be made resident? Check the Pure bit. If the programmer who made the command followed Commodore standards, it would be set to on. And, 9 times out of 10 the docs will mention the fact. KEYWORDS name This is an optional resident name for the program. For instance, you can chose to call the resident version of Delete by the letter D. If you don't specify a name, the filename is used as the resident name. filename The full path name to the file to be made resident. REMOVE This will remove the resident from the resident list. This only succeeds if that command is not currently in use. Under 2.x/3.x you can use this keyword to disable any Internal commands (which may be re-enabled with the REPLACE option). ADD REPLACE These keywords are completely optional since they make very little differnece to the execution of the program. If you don't add a filename with these keywordsthen the command will list all the programs on the resident list, just like if you used the command RESIDENT. If you issue a filename with them then RESIDENT will try to add that file to the resident list. If that file already exists it will get replaced by the new command. Under 2.x/3.x REPLACE will fail if the resident name is not on the resident list and you are able to re-enable an internal command that has been disabled with the REMOVE option. PURE or FORCE These cause RESIDENT to force a prgram to be made resident whether or not if the PURE bit is set. If this keyword is used, you will get a message saying that the pure bit is not set. Data files cannot be made RESIDENT, only executable programs can be. The FORCE keyword can be used under 2.x/3.x and does the exact same thing as pure. The use of this keyword can be extremely hazerdous to your system. Don't be surprised if you FORCE a command to be made resident that was not meant to be made resident cause your machine to crash in a very big way. SYSTEM This keyword will not allow the user to delete that file from the resident list. The most common use of this keyword is the way it enables the Shell windows to replace the CLI under 1.3. The command that makes the Shell-Seg resident is: RESIDENT CLI L:Shell-Seg SYSTEM Under 1.3 this is used in the startup script. But, 2.x/3.x does not need it because the Shell is built into the system ROMS. EXAMPLES: 1. Make the Delete command resident, using the name D: RESIDENT D C:Delete 2. To remove the DIR command from the resident list: RESIDENT dir REMOVE 3. To display all the command residing on the resident list: RESIDENT SYSTEM @Run (V1.3 in c:) (2.x/3.x internal) NAME Run - spawn a background shell or process. SYNOPSIS Run command+command+command+command.... DESCRIPTION Run is used to startup a background shell. Run itself does no parsing of the command line, it passes it unchanged to the background shell process, which means that depending on the shell you have loaded, you can do various interesting things with Run. You can pass multiple commands to the background shell by terminating each commandline with a '+' before you hit return. To detach processes from the parent console window, you can do Run >NIL:. This will allow you to close the CLI window from which that task was launched. Once RUN a program is totally seperated from the Shell from which it was RUN allowing you to use that Shell for other purposes. If any errors occur, the background program removes itself and disappears. After you RUN a program, the system shell will print the message [CLI n] where n is the task number assigned to the background task. The system will always check the resident list before looking in the system path for the command. EXAMPLES 1. Run Copy Thisfile OverHere+ Echo "Copy complete!" The above line will cause the background shell to first run the Copy command, and then the Echo command. 2. RUN EXECUTE "RAM:T/ThisFile" The above line will cause the command sequence file 'ThisFile' in the Ram:T/ directory to execute in the background by a single task. 3. RUN DIR > PRT: OPT A This prints a directory and file listing of the current drive on the printer. This will be operated in the background so you will be able to continue entering other commands into the Shell it was run from or to close it. 4. RUN >NIL: Calculator This starts the Calculator program. NIL: is used so you can close the CLI or enter other commands into it while the Calculator is running. 5. RUN FORMAT DRIVE DF1: NAME EMPTY + INSTALL DF1: + ECHO "Format and Install Finished" This will Format and Install a disk in df1: and then print a message saying "Format and Install Finished". @Search(V1.3) NAME Search - Search a file or files for a name or pattern. SYNOPSIS 1.3: Search [From name] [Search string] ALL [NONUM] [QUIET] [QUICK] [FILE] 2.x/3.x: Search [From name] [Search string] ALL [NONUM] [QUIET] [QUICK] [FILE] [PATTERN] DESCRIPTION Use Search to hunt for patterns or strings in files. As usual, you can specify the files using a wildcard pattern, and you can also specify a directory to be searched. Search also allows itself to be used in the middle of a pipeline. To do this, you must use the filename STDIN, and it must be spelled in UPPER CASE. Under 2.x/3.x's Search also allows you to specify a wildcard pattern as the search string, which the 1.3 version still does not. Any valid AmigaDOS pattern may be used as the search string. If a search object is found, then Search will return 0, otherwise it will return with the WARN faillevel set. This makes Search usable in scripts (see also QUIET, below). When searching through more than one file at a time, you can use C-e or C-f (Control E or Control F) to abandon the current file and move on to the next. (NOTE: This is different from the Commodore BCPL search, which uses C-d (Control d). Using C-e and C-f prevents conflicts with using C-d in script files, since C-d will abort a script file.) As usual, to kill the program, use C-c (Control C). Search treats the carriage return character as the end of the line. It also only searches the first 205 characters of a line, if there are more characters than that then the you are warned with a 'LINE n truncated' (n being the line number) and the search continuing. 2.x/3.x's Search places the last pattern you used in an environment variable called "Search". If you reuse Search at a later time, and omit the search string, Search will use the value of this Environment variable. This is convenient when searching for complex patterns over and over again on different disks or directories. This is also available to other programs to use if desired. KEYWORDS ALL Recursively descend all directories in the specified branch of the directory tree, searching each file for the pattern specified. NONUM Do not display line numbers. This option will also kill the indent Search usually adds to the lines it displays. Not used before 1.3. FROM name The file or directory to be searched. 'name' can also be an AmigaDOS pattern if using 2.x/3.x. If this is the first argument in your SEARCH, then this keyword is optional. SEARCH or NAME string This is the string of text you will look for. If this is your second argument then the keyword is optional. if there are any spaces in your string, there must be quotes around it. The string is not case sensitive, so if you search for HIM then him, Him, HiM, or hIm, etc. Under 2.x/3.x you can use NAME instead of SEARCH and the exact same result will occur. QUIET Search without displaying found lines. This is useful when you only want to get the return code from Search (for example, in a script file). QUICK This causes Search to use a more compact output format to speed up display. NOTE - when using SEARCH from an interactive CLI, this is the DEFAULT. FILE This causes Search to hunt for a file of the specified name, rather than searching through the contents of the files. Under 2.x/3.x the full path is printed. This makes it extremely easy to find a particular file on a large volume. CASE This causes Search to consider case as important in comparing search patterns. Ordinarily, case is ignored during a search. PATTERN An optional keyword under 2.x/3.x only. It tells the CLI that a pattern will be used during the search. EXAMPLES 1.This command line demonstrates the use of wildcard patterns in both the FROM and the SEARCH string positions. This will cause Search to look at all files in SYS:INCLUDE/exec which end with the characters '#?.h', for all strings which begin with the three characters 'SIG', followed by any character, followed by an underscore, followed by anything: Search SYS:INCLUDE/exec/#?.h SIG?_#? 2.To Search all the files in a directory called Westerns/TNT and all the files within its subdirectories for the phrase 'speghetti westerns': Search Westerns/TNT "speghetti westerns' ALL 3.Look inside the file AmigaJokes for the work IrvingGould: Search AmigaJokes IrvingGould 4.Search Quickly all the files which end in .txt in the current dir for the phrase 'super model' and print them. Search > PRT: #?.txt "super models" QUICK @Semicolon (;) (1.3/2.x/3.x internal) NAME ; - Allows you to enter comments into an AmigaDOS script. SYNOPSIS ;All comments are here... DESCRIPTION The comments can be located anywhere inside the script. To be considered part of the comment then all the words must be to the right of the semicolon. Anything to the left of it will be read as a command. The string may be up to 254 lines long (255 including the ;). EXAMPLE This is a simple command sequence file using the ; command. Everything to the right of the ; is considered a comment and will not be acted upon. ;Begin ImageFX assigns Assign ImageFX Work:ImageFX Assign Help Work:ImageFX/Help ;Assigns help docs ;End assigning ImageFX @Set (1.3/2.x/3.x internal) NB: I was unable to test this properly with 1.3. I would appreciate anyone who has tried it to please help me correct the problems. NAME Set - Set or clear the value of an environment variable. SYNOPSIS Set varname [string] DESCRIPTION First, let's discuss what an environmental variable is. It is a named text string which stores an environmental space and is accessible only to the Shell from which it was created. To have that variable to be accessed by any program or CLI (hence, a global variable) then use the SETENV command. SETENV stores the variable in the private system memory, while Set stores it in the RAM. This is different from environment variables created with the new V1.3 "SetEnv" and "GetEnv" commands. Programs which use the arp.library environment variables will be able to read variables set by either "Set" or "Setenv". To set the value of an environment variable, simply use SET VARNAME=VAL, which sets the value of VARNAME to VAL. To remove this environment variable do Set VARNAME= or Set VARNAME. There is no limit to the number of variables you can set and clear with one command. You can intermix setting and clearing variables on the same command line. To view the values of all current environment variables, simply use Set without any arguments. You can use spaces in your variable names and values, but it is not generally a good idea. If you do use spaces, you must surround the complete expression with double quotes, i.e., "Variable Name=Variable Value". Note that the similar looking expression "Variable Name = Variable Value" has hidden spaces. The Variable ends with a space, and the value begins with one. This is only one example of how problematical spaces in environment variables and values can become. Set also has special features for setting the Escape character. You can set the current escape character by using the ESCAPE keyword. One source of problems with old script files and 1.3, 2.x, and 3.x is the use of the star "*" to refer to the current window. Pre 1.3 programs tend to regard the star "*" as a wildcard, as is common. If you use the BCPL keyword to do SET BCPL TRUE, those programs which tend to have problems with this will attempt to overlook the "*" as a wildcard. Finally, you can get a listing of all variables, including the values of ESCAPE and BCPL by using the keyword LISTALL. Under 2.x/3.x there are several environmental variables which are automatically set for you, or which you may set for yourself. These are: Process: The process number of the current shell or task. RC : The Return Code of the last command executed. This lets you examine some code without using the IF WARN or IF FAIL commands. Result2: The error number that will indicate why the last command failed. The FAULT command may be used to interpret these. Echo: This local environment controls whether or not the Shell repeats each command as you execute it. If Echo is SET on, the commands are repeated. If you set it to anything else or not at all they are not repeated. Turning this on is a good way to debug your scripts that don't work. Many times there is really no other way to see why they failed. Echo will print each line as it executes and will tell you which ran properly, and which didn't. To remove a variable, you may use the UNSET command. EXAMPLE Set DODAH=SONG dateformat=0 copyflags= ESCAPE \ The command line above creates or redefines the variable DODAH to have the value SONG, dateformat to have the value 0, removes the variable copyflags from the environment, and sets the current ESCAPE character to \. ADDITIONAL CONSIDERATIONS The Shell also has builtin environment variable expansion and assignment features. @SetClock (1.3, 2.x, 3.x in C:) NAME SETCLOCK - Used to copy the time and date from the hardware clock to the AmigaDOS software clock. SYNOPSIS SETCLOCK [LOAD or SAVE or RESET] DESCRIPTION SetClock only works with Commodore's own clock/calendar, or compatible units. KEYWORDS Load or Save or Reset One of these must be used! Load: The stored time and date is copied from the hardware clock to the system clock. This is automatically done in 1.3 in the startup sequence. Under 2.x/3.x it is done from the kickstart ROM. Save: The current AmigaDOS system time and date is copied to the hardware clock. Reset: This will restart the clock if it was turned off by some program which wrote to the clock's hardware registers. You will know if this happens if you get a report that says: "battery backed clock not found" or the system clock is shown unset. @SetDate(V1.3) NAME SetDate - Set the DOS datestamp for files. SYNOPSIS 1.3: SetDate File [DATE] [TIME] [QUIET] 2.x/3.x: SetDate File [DATE] [TIME] [QUIET] [ALL] DESCRIPTION SetDate changes the last modification date of a file. This is useful with programs such as Make, or if a file was inadvertently created when the operating system was set to a bad date or time. The last modification date may be viewed using the List command. As with all programs which accept date and time information, you may use words such as YESTERDAY, MONDAY, etc., to specify the date. In the 2.x/3.x version of SetDate, you can of course use wildcard patterns to specify more than one filename. If you supply only the filename to SetDate, the current date will be assumed. This is probably the most common use of a program like SetDate, and is very convenient (it performs similarly to the Unix Touch command). Also under 2.x/3.x SetDate uses the value of the environment variable 'dateformat' to determine the style of input entry it expects. KEYWORDS File The name of directory or file to SetDate. Under 2.x/3.x you can use wildcards to change multiple files. DATE The day, month, and year you wish to change the date to. The recognized format is: DD-MMM-YY. DD is the two-digit number for the day. MMM is a three-letter abbreviation for the month (eg FEB or APR). YY is the last two digits of the year. You may also use words like SATURDAY, YESTERDAY, TOMORROW, etc. Saturday, Sunday, Monday, and the rest of the days of the week can be used as flags. The system will evaluate the day then advance the system date to match the specified day of the week. So, if it is Monday and you specify Thursday, the system clock will advance by three days. If the date is not specified then the file is set to the current system date and time. Time You can set the time along with the date with the use of this optional keyword. The recognized format is HH:MM:SS, for hours, minutes, and seconds respectfully. Hours are recognized in a 24-hour format (aka Military Time) where 1:00pm is represented by 1300 hours. If you leave out minutes and/or seconds they are defaulted to 00. If you don't include this keyword then the time-stamp on the file is defaulted to 00:00:00. EXAMPLE 1. To set the date to January 1st, 1988 to 12:15 for the file 'myfile'. SETDATE myfile 01-jan-88 12:15 2. To give the file 'foo' yesterday's date: SETDATE foo YESTERDAY 3. To set all files ending in .o to the current date. SETDATE *.o SEE ALSO DATE, LIST @SetEnv(V1.3) NAME SetEnv - Set or delete an environment variable in the ENV: handler. SYNOPSIS SetEnv Varname [String] DESCRIPTION This command sets or delete the value of environment variables using the new ENV: handler introduced by Commodore. It takes the name of a variable and the value to set it to. An environment variable is a variable that is accessable by all tasks. Note that ENV: is currently just a directory in RAM:, it is not a true handler. Maybe in the furture global environmental varibles may be stored in RAM reserved for the system and then manipulated by their own device handler, as the local environments are. KEYWORDS Varname The name of the environment variable to set. This is the name of the text files stored in the ENV: directory. Using the SETENV command copies the text string to this file. 2.x/3.x has several global variables which are automatically set for you, or you can set for yourself. These include: Kickstart/Workbench: These variables are created during system startup and contain the version numbers of the Kickstart and Workbench you are using. Editor: Recognized by some Workbench programs such as MORE. If you set this variable to the path name of your favorite text editor, MORE allows you to bring up the program to edit the current file by pressing Shift-E. [string] The text string attached to the environmental variable. If there are any spaces in the text then you must enclose the entire string in quotes. If there is no string specified then an empty string will be copied to the variable. 2.x/3.x only: To remove the string then use the UNSETENV command. EXAMPLE 1. Copy the name Bar to the environment variable named foo: SetEnv Foo Bar 2. To remove a text string associated with the environment variable Foo: SetEnv Foo SetFont (2.x/3.x in C:) NAME SetFont - Allows user to specify the text font, size, and style used in a particular shell window. SYNOPSIS SETFONT fontname fontsize [SCALE] [PROP] [ITALIC] [BOLD] [UNDERLINE] DESCRIPTION You can use this program to change the System Default Text font without using the System Font Prefrences program. KEYWORDS fontname The name of the font to install. It can be a system bitmapped or scalable outline font. fontsize The point size of the font. A scalable outline font will be scaled to fit that size. If a bitmapped of that size does not exist then the next closest size will be used. SCALE This enables bitmapped scaling. In other words, if you specify a font size that does not exist then one will be created from the characters of the next closest size. PROP The optional keyword that lets you use proportional fonts. If you try to use a proportional font without this keyword then you will get an error message that says: 'Object not of required type'. Warning: There are some proportional fonts that will not print correctly in a console window. ITALIC Prints the font in the italic format. BOLD Prints the font in the bold format. UNDERLINE Prints the font underlined. EXAMPLES: 1. To change the font to a scaled version of Seista font which is 12 points high: SETFONT Seista 12 SCALE 2. To change the font in the current shell to a bold underlined version of the proportional Ruby font, 16 points high: SETFONT Ruby 16 BOLD UNDERLINE PROP SetKeyboard (2.1/3.x in C:) NAME SetKeyboard - Changes the key map of the keyboard for that Shell window. SYNOPSIS SETKEYBOARD mapfile DESCRIPTION A key map is a datatable which the Amiga refrences when a key on a keyboard is pressed. Different key maps cause the keys on the keyboard to print different things depending on which country's keyboard you wish to use. For example, if your are using the French keymap letter 'Q' reversed will be used when you press the 'A' key on the keyboard. Or, if you press the 'Q' key, then 'A' will be printed. For complete info on the foreign key layouts refer to the 'Introduction to the Amiga' handbook which Commodore bundled with your Amiga. If you want to see how your keyboard is mapped out, use the Keytoy program (under 1.3) or the KeyShow (under 2.x/3.x) in the Tools directory of your Extras disk. This will give you a complete graphical representation of your keyboard. In Workbench 2.1 and higher you have system language localization. In these versions, the key map is set via the Locale preference progam. SETKEYBOARD allows you to change the key map without accessing the Locale Preference program the same way the SETFONT command allows you to change the font without accessing the Fonts Preference program. This command looks for its key map data file in the 'Keymaps' subdirectory of the DEVS: directory. If you type the full path then the key map file may be located anywhere. The standard keymaps are currently limited to: cdn French Canadian ch1 Swiss French ch2 Swiss German d German dk Danish e Spanish f French gb Great Britain i Italian n Norwegian p Portugese s Swedish usa0 The standard mapping of the 1.1 Workbench (A1000) usa1 Maps for the numeric pad keys on 500/2000 usa2 Dvorak U.S. keyboard KEYWORDS mapfile The keymap data file which will be used. If the keymap data file is in the DEVS/keymaps drawer then you do not need to enter the path. If it is located anywhere else, you do need to enter the path. EXAMPLES 1. To install the French Canadian keyboard: SETKEYBOARD cdn @SetMap (1.3, 2.0x in Sys:System) NAME SetKeyboard - Changes the key map of the keyboard for that Shell window. SYNOPSIS SETMAP mapfile DESCRIPTION A key map is a datatable which the Amiga refrences when a key on a keyboard is pressed. Different key maps cause the keys on the keyboard to print different things depending on which country's keyboard you wish to use. For example, if your are using the French keymap letter 'Q' reversed will be used when you press the 'A' key on the keyboard. Or, if you press the 'Q' key, then 'A' will be printed. For complete info on the foreign key layouts refer to the 'Introduction to the Amiga' handbook which Commodore bundled with your Amiga. If you want to see how your keyboard is mapped out, use the Keytoy program (under 1.3) or the KeyShow (under 2.x/3.x) in the Tools directory of your Extras disk. This will give you a complete graphical representation of your keyboard. In Workbench 2.1 and higher you have system language localization. In these versions, the key map is set via the Locale preference progam. SETKEYBOARD allows you to change the key map without accessing the Locale Preference program the same way the SETFONT command allows you to change the font without accessing the Fonts Preference program. This command looks for its key map data file in the 'Keymaps' subdirectory of the DEVS: directory. If you type the full path then the key map file may be located anywhere. The standard keymaps are currently limited to: cdn French Canadian ch1 Swiss French ch2 Swiss German d German dk Danish e Spanish f French gb Great Britain i Italian n Norwegian p Portugese s Swedish usa0 The standard mapping of the 1.1 Workbench (A1000) usa1 Maps for the numeric pad keys on 500/2000 usa2 Dvorak U.S. keyboard KEYWORDS mapfile The keymap data file which will be used. If the keymap data file is in the DEVS/keymaps drawer then you do not need to enter the path. If it is located anywhere else, you do need to enter the path. EXAMPLES 1. To install the French Canadian keyboard: SETKEYMAP cdn 2. To install the French language keyboard: SETMAP f 3. To restore the default system key map: SETMAP usa @SetPatch (1.3, 2.x, 3.x in C:) NAME SetPatch - Released by Commodore to fix any known problems in the KickStart ROMS. SYNOPSIS 1.3: SETPATCH [r] 2.x/3.x: SETPATCH [NOCACHE] [QUIET] 3.1: SETPATCH [NOCACHE] [QUIET] [NOAGA] DESCRIPTION This should be the very first program run in your Startup-Sequence file. When run, the command prints a list of the patches (program corrections) made. KEYWORDS r An optional switch which lets you use the recoverable RAM disk (RAD:) to work on 1.3 machines with 1meg of chip ram. If you are using a 1.3 machine and don't know how much ram you have, simply run the AVAIL command any you'll see. If it is just 512k, then you can't use a RAD: device. But, if you have over 512k then you can. NoCache 2.x/3.x only: Lets you disable the data cache on accelerator cards. With cache on (default) commands run much quicker, but some older programs do not run well (or at all) with cache on, so turning it off may help with compatiblity of older 1.3 programs. Quiet 2.x/3.x Only: Prevents SetPatch from printing out a status report of the patches made. NOAGA 3.1 Only: Prevents an AGA machine from fully enabling the AGA chipset. This lets you use setpatch to help you run those programs that don't work on AGA graphics chips. EXAMPLES 1. To patch 2.1 Kickstart routines without printing a list of patches: SETPATCH >NIL: QUIET @Skip (V1.3 in C:) (2.x/3.x internal) NAME Skip - Skip to the appropriate label. SYNOPSIS Skip string [BACK] DESCRIPTION Skip moves the currently executing script file ahead until it finds a lab declaration which matches its own argument. If Skip is used without an argument, it looks for a null string designated by LAB. If you run skip without a label string or a LAB command then you will get the error message declaring 'label not found by SKIP'. To Skip backwards in a file, you use the BACK keyword. If at any point in its search for a label Skip encounters the EndSkip command, it will abort the Skip and return an error of WARN. By using the idiom "Skip ?", you can request a user to give you a label, and jump to that portion of the batch file. CAUTION: With the 1.3 version of SKIP, you should NOT indent a "Lab" statement or that label will not be found. Note that 2.x/3.x contains this command as a builtin. KEYWORDS string The text attached to a LAB command which SKIP searches for. The search always starts on the line following skip and continues downwoard toward the end of the file. SKIP always looks for the LAB keyword command preceding the Skip command, it will not goto a LAB command before the Skip unless the BACK keyword is used. back Added with 1.3, it starts at the Skip and searches back up the file towards the beginning. You may not skip backwards in an EXECUTE statement. EXAMPLE 1. To skip to Lab Dodah Skip Dodah 2. To skip down to the next LAB statement in the current command file. Skip 3. To skip to the LAB statement 'Here' before the current skip statement in the current command file: Skip Here Back @Sort (V1.3, 2.x, 3.x in C:) NAME Sort - Sort a file. SYNOPSIS 1.3: Sort [From fromname] [To toname] [COLSTART n] 2.x/3.x: Sort [From fromname] [To toname] [COLSTART n] [CASE] [Numeric] DESCRIPTION Performs a sort according to the first ASCII value of the beginning characters of an AmigaDOS text file. AmigaDOS treat a string of characters that ends with a linefeed as a single line. Sort will compare each of these lines with each other. Numbers will always come before letters. Lines will be sorted in ascending order with the 'lower' number or character first and the 'higher characters last (eg 1,2,3.....x,y,z). Under 1.3 the sort is Case sensitive with capital letters being listed before lower case letters. In all versions 2.x and above there is no case sensitivity. 1.3's sort is not very fast especially on long files. If you have more than 200 lines then you must increase the Stack size. If Sort fails, and you have 1.3, then increase you stack size and you may improve your performance. If you omit the From argument from Sort, it reads from its standard input, which allows it to be used in pipelines. KEYWORDS FROM The AmigaDOS file you whose contents you will sort. If the fromname is the first argument in the command labels then it is optional. TO The AmigaDOS file or device which the sorted lines from fromname will be sent. If you use the same name as fromname Sort will not work. If the toname is the second argument in the command labels then it is optional. COLSTART n This takes a numeric argument which gives the starting column for the sort. All entries to the left of this column will not be considered in the final arrangement. CASE 2.X/3.X ONLY: If this option is used, the sort will be case sensitive. In other words, upper case letter will be sorted before lower case ones. NUMERIC With this keyword is specified all lines are looked at as numbers. Lines that start with letters are assigned the number zero. If both CASE and NUMERIC are used simultaneously then CASE is ignored. EXAMPLE 1. To get a listing of all files sorted by time (i.e., from the earliest to the latest). list >listfile sort listfile colstart 41 or using pipes: list | sort colstart 41 2. Sort the contents of your Address Book to a file called Sorted Addresses: SORT "Address Book" "Sorted Addresses" 3. To print out a sorted Address Book file in the Work:People directory: SORT "Work:People/Address Book" PRT: @Stack(V1.3 in c:) (2.x/3.x internal) NAME Stack - Set or display the current stack size. SYNOPSIS Stack Size DESCRIPTION Stack is used to set aside a certain amount of memory for the active CLI. This memory area is a buffer area used by programs to work in. The default stack size is 4000 bytes, which is enough for most programs. If the stack is too small the program won't run. Many programs require more stack than the default setting of the Amiga's stack will give them. You can use this command to display the current amount of stack (by using Stack without an argument), or you can change the current amount of stack by providing an integer argument to stack. You can check the stack size of all active system tasks by using the Status command. KEYWORDS Size The bytes of memory set aside that you wish to assign as stack space for the currently active CLI. If you don't use the Size keyword, then the current stack size is displayed. EXAMPLE 1. To obtain a good healthy stack for programs: Stack 10240 2. To display the stack size of the currently active CLI: Stack @Status (V1.3, 2.x, 3.x internal) NAME Status - Display the currently running CLI processes. SYNOPSIS Status tasknum [FULL] [TCB] [CLI=ALL] [COMMAND=COM] DESCRIPTION The most common use of Status is to find what background processes are still executing, this can be in preparation to sending them a signal with Break, or to find out if all your programs are completed before turning off the computer. The various options to this command display information which may or may not be useful, depending on your needs. The default behavior of Status is to display the CLI numbers and names of all currently active processes. You can get information on a specific process by typing Status . You can also find out if a specific command is executing using the COMMAND keyword. This can be useful in scripts, since if the command is NOT found, the WARN fail level will be set. Otherwise, a 0 fail level is returned. This is useful with shells that support command substitution to do things like send BREAK codes to processes. KEYWORDS taknum The number of the task which STATus is to report on. If tasknum is not specified, all active tasks are reported. FULL Displays all the information normally reported by STATUS if both the TCB and ALL were both specified. This keyword is completely optional. TCB This displays all information concerning stack size, global vector size, and priority of all system tasks. This keyword is completely optional too. CLI or ALL Specifying these keywords forces STATUS to report of the status of all the CLI tasks. This is the same as running Status without any keywords. The CLI and ALL are interchangeable. COMMAND or COM Added with 1.3, this prints the task number of the CLI from which the 'filename' program was run. This lets you send a break to a program using a script file. A return code of 5 (Warn)is returned if that command is not found. EXAMPLE 1. To find out everything about all executing processes. Status FULL 2. Here is an example using command substitution that will send a break to the process executing the ClockPtr command: Break `Status Command ClockPtr` Note that the above assumes you are using 2.x/3.x's backtick function. You might find it interesting to compare this example with the more complex one given for 1.3: STATUS >ram:temp COMMAND ClockPtr BREAK NIL: ? DELETE ram:temp Both of these accomplish the same thing! @TackOn(V1.3) ARP User's Manual TackOn(V1.3) NAME TackOn - Add a filename to a path. SYNOPSIS TackOn Path/a File/a DESCRIPTION TackOn takes a Path and a File and unites these two into one larger pathname which it then displays on its standard output. This allows TackOn to be used in building up filenames in shell scripts using command substitution. EXAMPLES There are several good examples of using TackOn in the Ash Manual. @Type (V1.3, 2.x, 3.x in C:) NAME Type - Type a file, possibly with line numbers or in hex. SYNOPSIS Type [FROM] fromname [[TO] toname] [OPT N=NUMBER / OPT H=HEX] DESCRIPTION Type displays a file on the current window, or, if a TO argument is supplied, to a file. With the 2.3/3.x version of Type, you can type many files with one TYPE command, and use wildcards as well. Note that due to this enhancement of Type it is possible to dispense with Join, since Type can do Join's job as well as its own. Although you can view a file with Type, you are also able to copy a file with it. It can format its output as hex number or include line numbers at the beginning of each line. If you use Type without a filename, it will read from its standard input. This allows you to use Type in a pipeline, or to send keyboard input to a device (such as a printer) or a file. To terminate an interactive session with Type, use Ctrl-\. To pause the output hit the space bar. Resume the output by pressing the Ctrl-x. The output may be cancelled with the Ctrl-C. OPTIONS FROM fromname The name of the file you want displayed. Fromname can be any valid Amiga file. The FROM keyword is optional if the fromname immediatly follows the command. 2.x/3.x lets you TYPE many files. NOTE: ONLY 'OPT N' OR 'OPT H' MAY BE SPECIFIED ONE AT A TIME NOT BOTH AT THE SAME TIME. HEX or OPT H This displays the file(s) in hexadecimal. NUMBER or OPT N This displays the file(s) with line numbers. AmigaDOS will treat any number of characters within a file ending with a linefeed as one line. TO file The TO option lets you select a destination file instead of typing to the console. Note that with the 2.x/3.x TYPE, you must explicitly specify the TO keyword, unlike the 1.3 TYPE. Under 2.x/3.x a second filename will be presumed to be another fromname if the TO keyword is not specified. Since 1.3 cannot display multiple files with one TYPE command then the TO keyword isn't needed if the toname directly follows the fromname. If TO is not specified, the TYPE is output to the screen. toname may be any kind of AmigaDOS file or device (such as prt:). It cannot be a directory, however. If you specify a directory with something in it, TYPE will fail. If toname is an empty directory then the directory will be deleted and replaced with the typed file. EXAMPLE 1. To Type a binary file in hex. Type WORK:ThisFile.bin OPT H 2. To Type the contents of a text file to the screen: Type this.txt 3. To copy a file named this.txt to another directory: Type Work:Docs/this.txt Work:MoreDocs/this.txt 4. Dump a text file to the printer with line numbers: Type Work:this.txt to PRT: Opt N @UnAlias (2.x/3.x Internal) NAME UnAlias - Removes an alias from the system. SYTNOPSIS UnAlias name DESCRIPTION It will remove an alias from your system as well as being able to list the current aliases. KEYWORDS name The alias you wish to remove. If you don't specify a name, it will list all the aliases assigned. EXAMPLE 1. To remove the XCOPY alias: UNALIAS xcopy @UnSet (2.x/3.x Internal) NAME UnSet - Removes a specific local variable. SYNOPSIS UnSet name DESCRIPTION If you don't specify a variable to UnSet, it will list all the current local environment variables and what they hold. For more information on local environment variables see the SET command details. KEYWORDS name The name of the local environmental variable to remove. If omitted, it will list all current local environment variables and what they hold. EXAMPLE 1. To list all the environment variables: UnSet @UnSetEnv (2.x/3.x Internal) NAME UnSetEnv - Removes specified global environment variable. SYNOPSIS UnSetEnv name DESCRIPTION This actually deletes the named file in your ENV: directory. For more info on global environmental variables see the details in the SETENV file. If you don't specify a file to delete, then UNSETENV will list all the current global varibles. KEYWORDS name The name of the global environment variable to remove. If you don't specify a name, then the command will list all of the global environment variables. @Version(V1.3, 2.x, 3.x in C:) NAME Version - Report version numbers of current system software. SYNOPSIS 1.3: Version [libraryname or devicename] [versionnum] [revisionnum] [unitnum] 2.x/3.x: Version [libraryname or devicename or filename] [version_num] [revision_num] [unit_num] [FILE] [INTERNAL] [RES] [FULL] DESCRIPTION By default, Version reports the current versions of Kickstart, Workbench and arp.library in use on your Amiga. This is the same as using the Workbench menu selection "About...". If you specify a name (which may be a library or a device), Version attempts to find out which version the system will use when accessed. OPTIONS libraryname or devicename or filename The complete path and name of the library, device, or file whose version you want to check. You can only check file version numbers under 2.x/3.x. If you don't specify this keyword, the Version number of the kickstart and Workbench will show up. Version_Num Accepts a numeric argument. If the version of the library or device in question is not the same as this argument, the return code will be set to WARN. Revision_Num Like VERSION, but checks the revision number of the specified library or device. Unit_num Useful only with some devices, to access a unit other than zero. RES This lets you find the version number of a resident command. Full Allows version to print out the entire versin string, including the date. EXAMPLE 1. To get the complete version of the Kickstart and Workbench disks used: Version (This is what it will return:) Kickstart version 33.180. Workbench version 33.44. ARP version 39.1 Note that the above values may be different depending on what versions of each software you are running. 2. To check to see if the version of ReqTools is greater than 37. Print a warning if it isn't: Version >Nil: ReqTools.library Version=37 Revision=35 IF Warn ECHO "ReqTools library version below 37." ENDIF 1.3 CAUTION!!! You should not run VERSION indiscriminately on files which are not in the libs: or devs: directories, or your system may GURU. @Wait (V1.3, 2.x, 3.x in C:) NAME Wait - Delay a specified amount of time. SYNOPSIS WAIT n [SEC=SECS] [MIN=MINS] [UNTIL time] DESCRIPTION Wait will delay a specified number of seconds or minutes, or until the specified time is reached. This is most often used in EXECUTE batch files for a delay. By default, all units are in seconds. If no delay is specified, the default delay is 1 second. Sending a break to the WAIT command will cause WAIT to conclude. OPTIONS n The amount of time, in minutes or seconds that the system will wait. If a time isn't specified then it defaults to 1 second. SEC=SECS The number entered is the number of seconds (this is the default) to wait. MIN=MINS The number entered is the number of minutes to wait. UNTIL The string entered is a valid time. Wait will delay until this time is reached. You may only specify one of UNTIL, MINS, or SECS for WAIT. EXAMPLE 1. To WAIT one second: WAIT 2. To wait ten seconds: WAIT 10 secs 3. To wait until 3:00: WAIT UNTIL 3:00 4. To wait for three minutes: WAIT 3 min or WAIT 180 5. To set up a background process that waits until 3:00 and then delete all the files in a directory named 'Garbage': RUN WAIT UNTIL 3:00 DELETE Garbage/#? @Which(V1.3, 2.x, 3.x in C:) NAME Which - display pathname of command. SYNOPSIS 1.3: Which filename [NORES or RES] 2.x/3.x: Which filename [NORES or RES] [ALL] DESCRIPTION Which searchs the command path (including the resident list) for the file you specify. This command is useful in determining exactly Which command you are executing. By default, Which searches the Resident list, then the command path. Which is extremely useful in the way it will allow you to tell Which AmigaDOS command will be found first when there are multiple versions of that command in your system paths. KEYWORDS filename The name of the file, directory, or device to find. If you don't specify a logical device, then the Assign list is also checked. NORES Don't search the resident list. RES Search only the resident list. ALL Which will search all of your paths including the internal and resident lists. This should reveal all of the copies of a given command. EXAMPLES 1. To display the directory which the MUInt program is stored, while only checking for its existence in the resident list: Which MUInt RES 2. To display the device to which ImageFX: is Assigned: Which ImageFX: @Why (1.3, 2.x, 3.x in C:) NAME Why - Used to get additional information about failing commands. SYNOPSIS WHY DESCRIPTION AmigaDOS has this little command that MSDos and System 7 users can only dream about. MSDos nor System 7 gives the user any kind of feedback when a command fails to run. The few messages they do send you are confusing and make sense only to Bill Gates (maybe). When AmigaDOS hits a problem, what happens? You get a nice little requestor telling you what was wrong and probably a suggestion on how to fix it. If you send the Why command right after this happens, you can get additional info on the command failure and more details (in simple English) on what can be done to correct it. Sometimes, Why will send back a failure code in the form of a number. You can use the Fault command to analyze this number and investigate more fully the fault code. If you issue Why after a command that executed successfully (or did the failed command has issued all the information available) you will get the message: "The last command did not set a return code." KEYWORDS There are no keywords. EXAMPLES 1. What happens when a Why is issued after a RUN command fails to run: 1> RUN GrooveyGame RUN: Can't run GrooveyGame 1> WHY Last command failed because file not found @DMS Usage: DMS ›0;33mcommand ›0;32moptions,,,›0m ›1;33mcommand›0m---------------------------------------------------------------------- READ - Compress disk. | VIEW - View information. APPEND - Append tracks to file. | VIEWDIZ - View FILE_ID.DIZ in file. WRITE - Decompress disk. | TEST - Test file. REPACK - Repack file. | TEXT - Show BANNER in file. SFX - Make .DMS executable. | ›1;32moptions›0m---------------------------------------------------------------------- FROM - Drive (ex. DF0: RAD:) | ENCRYPT - Encrypt file with password. TO - Drive (when reading) | DECRYPT - Decrypt file with password. Filename(when repacking) | PC - Read as MS-DOS disk. LOW - Track to start from. | HD - Read High-density disk. HIGH - Track to end at. | FULL - Show full info on DMS file. CMODE - Packing method (ex. BEST) | SAVE - Saving of FILE_ID.DIZ TEXT - Banner for DMS file. | NOPAUSE - Skip 'press [RETURN]' request DIZTEXT - FILE_ID.DIZ for dms file. | NOVERIFY- Write without verify of data. NOVAL - No validating of disk. | NOTEXT - Do not display banners. NOZERO - Ignore diskbitmap. | RETRY - Read/Write Retry (when Error) DEVFIX - Utilize dms for DMS.DEVICE| ----------------------------------------------------------------------------- Usage(s): ›1;31mDMS ›0;33mRead file›31m[.DMS]›32m ›31m[FROM ›33mDev:›31m] [TEXT ›33mfiletext›31m] [CMODE ›33mmode›31m] [LOW ›33mlowtrack›31m] [HIGH ›33mhightrack›31m] [NOVAL] [NOZERO] [ENCRYPT ›33mpassword›31m] [PC] [HD] [DIZTEXT ›33mfiletext›31m] [RETRY ›33mvalue›31m] [DEVFIX] ›1;31mDMS ›0;33mAppend file›31m[.DMS]›32m ›31m[FROM ›33mDev:›31m] [TEXT ›33mfiletext›31m] [CMODE ›33mmode›31m] [LOW ›33mlowtrack›31m] [HIGH ›33mhightrack›31m] [NOVAL] [NOZERO] [DIZTEXT ›33mfiletext›31m] ›1;31mDMS ›0;33mWrite file›31m[.DMS]›32m,,, ›31m[TO ›33mDev:›31m] [LOW ›33mlowtrack›31m] [HIGH ›33mhightrack›31m] [NOVAL] [NOVERIFY] [NOTEXT] [NOPAUSE] [DECRYPT ›33mpassword›31m] [PC] [HD] [RETRY ›33mvalue›31m] ›1;31mDMS ›0;33mRepack file›31m[.DMS] [TO ›33mfile›31m] [LOW ›33mlowtrack›31m] [HIGH ›33mhightrack›31m] [CMODE ›33mmode›31m] ›1;31mDMS ›0;33mView file›31m[.DMS]›32m,,,›31m [FULL] ›1;31mDMS ›0;33mTest file›31m[.DMS/.FMS]›32m,,,›31m ›1;31mDMS ›0;33mText file›31m[.DMS]›32m,,,›31m ›1;31mDMS ›0;33m?›31m (HELP) ›1;31mDMS ›0;33mViewdiz file›31m[.DMS]›32m ›31m[SAVE ›33mfilename›31m] ›1;31mDMS ›0;33mSfx file›31m[.DMS]›32m ›0;32mFMS Commands: ›0;31mUsage: DMS archive[.FMS] ,,, ›1;31mDMS ›0;33mMakesfx file›31m[.FMS]›31m ›1;31mDMS ›0;33mA file›31m[.FMS]›31m: Add files to archive ›1;31mDMS ›0;33mE file›31m[.FMS]›31m: Extract archive ›1;31mDMS ›0;33mV file›31m[.FMS]›31m: View archive full ›1;31mDMS ›0;33mL file›31m[.FMS]›31m: List archive @PGP 2.6ui PGP -ea {Text} Verschlüsselt eine Nachricht PGP -d {Text} Entschlüsselt eine Nachricht PGP -ka {Keyfile} Fügt einen öffentlichen Schlüssel hinzu PGP -kg Erstellt ein Schlüsselpaar PGP -kr {User_Id} Entfernt einen Public-Key PGP -ke {User_Id} Editiert die User_Id oder den Mantra PGP -kxa {User_Id} {keyfile} Extrahiert einen öffenlichen Schlüssel @